我有以下型号:
class User(models.Model):
name = models.Charfield()
email = models.EmailField()
class Friendship(models.Model):
from_friend = models.ForeignKey(User)
to_friend = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)
这些模型用于以下视图和序列化程序:
class GetAllUsers(generics.ListAPIView):
authentication_classes = (SessionAuthentication, TokenAuthentication)
permission_classes = (permissions.IsAuthenticated,)
serializer_class = GetAllUsersSerializer
model = User
def get_queryset(self):
return User.objects.all()
class GetAllUsersSerializer(serializers.ModelSerializer):
is_friend_already = serializers.SerializerMethodField('get_is_friend_already')
class Meta:
model = User
fields = ('id', 'name', 'email', 'is_friend_already',)
def get_is_friend_already(self, obj):
request = self.context.get('request', None)
if request.user != obj and Friendship.objects.filter(from_friend = user):
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
所以基本上,对于GetAllUsers视图返回的每个用户,我想打印出用户是否是请求者的朋友(实际上我应该检查from_和to_friend,但对于问题并不重要)
我看到的是,对于数据库中的N个用户,有1个查询用于获取所有N个用户,然后在序列化程序中查询1xN个查询 get_is_friend_already
有没有办法在休息框架方式中避免这种情况?也许是将select_related …
python django-orm django-queryset django-select-related django-rest-framework
我有一个MainActivity有三个片段FragmentPagerAdapter如下所示.如何通过滑动或单击选项卡,如何找出用户从第一个片段到第二个片段或从第二个片段到第二个片段的时间?我看到这个getItem()方法并没有像我声明的那样被调用mViewPager.setOffscreenPageLimit(2);
public class MainThreeTabAdapter extends FragmentPagerAdapter {
private final String[] CONTENT = new String[]{"News", "Rewards", "Me"};
public MainThreeTabAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return NewsFragment.newInstance();
} else if (position == 1) {
return RewardsFragment.newInstance();
} else if (position == 2) {
return MeFragment.newInstance(true, App.getAccountData().getId());
} else {
return null;
}
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length];
} …Run Code Online (Sandbox Code Playgroud) android android-tabhost android-fragments android-viewpager android-pageradapter
我有一个定期任务,我正在使用worker在heroku procfile上实现:
Procile
web: gunicorn voltbe2.wsgi --log-file - --log-level debug
worker: celery -A voltbe2 worker --beat -events -loglevel info
Run Code Online (Sandbox Code Playgroud)
tasks.py
class PullXXXActivityTask(PeriodicTask):
"""
A periodic task that fetch data every 1 mins.
"""
run_every = timedelta(minutes=1)
def run(self, **kwargs):
abc= MyModel.objects.all()
for rk in abc:
rk.pull()
logger = self.get_logger(**kwargs)
logger.info("Running periodic task for XXX.")
return True
Run Code Online (Sandbox Code Playgroud)
对于这个句号,我需要--beat(我通过关闭它来检查,并且它不重复任务).所以,在某种程度上,--beat时钟的工作(https://devcenter.heroku.com/articles/scheduled-jobs-custom-clock-processes)
我担心的是:如果我将工作者扩展heroku ps:scale worker=2为2x dynos,我发现在worker.1和worker.2上有两个节拍从日志中运行:
Aug 25 09:38:11 emstaging app/worker.2: [2014-08-25 16:38:11,580: INFO/Beat] Scheduler: Sending due task apps.notification.tasks.SendPushNotificationTask …Run Code Online (Sandbox Code Playgroud) 我试图用python quickfix(FIX 4.2)实现基本的FIX请求,但是文档很少让我完全理解它(我已经做了很多研究,问题末尾的链接 - 所以请放心这不是一个没有做任何挖掘的问题)
8=FIX.4.2 | 9=108 | 35=A | 34=1 | 49=ACCOUNTXXX | 52=20161116-00:00:15.281 | 56=CNX | 553=ACCOUNTXXXSTR1 | 554=Stater123 | 98=0 | 108=60 | 141=Y | 10=133 |
Run Code Online (Sandbox Code Playgroud)
8=FIX.4.2 | 9=77 | 35=A | 49=CNX | 34=1 | 52=20161116-00:00:17.928 | 56= ACCOUNTXXXSTR1 | 98=0 | 108=60 | 141=Y | 10=140 |
Run Code Online (Sandbox Code Playgroud)
8=FIX.4.2 | 9=142 | 35=V | 34=8 | 49=ACCOUNTXXX | 52=20161116-12:19:48.269 | 56=CNX | 146=1 | 55=EUR/USD | 262=2016110213351833862 | 263=2 …Run Code Online (Sandbox Code Playgroud) 如何通过authtoken(而不是username/pwd)进行身份验证,为特定用户使用Django Rest Framework可浏览API?就像我在Chrome中为POSTMAN做的那样
谢谢
我试图限制 GFK 只指向几个模型的对象,我认为 CheckConstraint 将是一个很好的方法,但是我得到了这个错误
class ManualAdjustment(Model):
content_type = models.ForeignKey(ContentType, null=True, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField(null=True)
booking_obj = GenericForeignKey('content_type', 'object_id')
# should point to a app1.Booking1 or app2.Booking2 or app3.Booking3 only - trying to enforce this via CheckConstraint
class Meta:
constraints = [
models.CheckConstraint(
check=
Q(content_type__app_label='app1', content_type__model='booking1') |
Q(content_type__app_label='app2', content_type__model='booking2') |
Q(content_type__app_label='app3', content_type__model='booking3'),
name='myconstraint_only_certain_models'),
]
Run Code Online (Sandbox Code Playgroud)
execute_from_command_line(sys.argv)
File "/Users/myuser/.virtualenvs/xenia371/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/Users/myuser/.virtualenvs/xenia371/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/myuser/.virtualenvs/xenia371/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/myuser/.virtualenvs/xenia371/lib/python3.7/site-packages/django/core/management/commands/sqlmigrate.py", …Run Code Online (Sandbox Code Playgroud) django generic-foreign-key django-postgresql django-migrations django-generic-relations
我正在关注 Django REST 框架教程,此时我在这里:http : //www.django-rest-framework.org/tutorial/4-authentication-and-permissions#adding-endpoints-for-our-user -楷模
我的 UserSerializer 代码如下所示:
class UserSerializer(serializers.ModelSerializer):
snippets = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = User
fields = ('id', 'username', 'snippets')
Run Code Online (Sandbox Code Playgroud)
我试图了解到底什么是 PrimaryKeyRelatedField。为此,我正在按如下方式更改代码并刷新 URLhttp://127.0.0.1:8000/users/以查看不同的输出
变体 1
snippets = serializers.RelatedField(many=True, read_only=True)
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"username": "som",
"snippets": [
"Snippet title = hello",
"Snippet title = New2"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是打印出__unicode__()片段的值。我期待这个
变体 2 - 使用 PrimaryKeyRelatedField
snippets = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
{
"count": …Run Code Online (Sandbox Code Playgroud) FragmentPagerAdapterViewPager与OffScreenLimit设置为1和FragmentStatePagerAdapter?之间有什么区别?
关于FragmentPagerAdapterGoogle的指南说:
此版本的寻呼机最适合在有少量通常更多静态片段进行分页时使用,例如一组选项卡.用户访问的每个页面的片段将保留在内存中,但其视图层次结构可能在不可见时被销毁.这可能导致使用大量内存,因为片段实例可以保持任意数量的状态.对于较大的页面集,请考虑FragmentStatePagerAdapter.
关于FragmentStatePagerAdapter:
当存在大量页面时,此版本的寻呼机更有用,更像列表视图.当页面对用户不可见时,它们的整个片段可能被破坏,只保留该片段的保存状态.与FragmentPagerAdapter相比,这允许寻呼机保持与每个被访问页面相关联的更少的存储器,代价是在页面之间切换时可能具有更多的开销.
我想如果我将offscreenlimit设置为1,它会破坏当前片段的下两个片段之外的所有片段,并且它的行为类似于FragmentStatePagerAdapter.它是否正确?
android android-fragments android-viewpager android-pageradapter
当我从启动画面转到主要活动时,LeakCanary会显示以下内存泄漏.我知道这是由于Android操作系统本身的故障导致的预期泄漏,但有没有办法可以避免这种情况(通过在某处设置某些TextView的细节?)
D/LeakCanary? * LEAK CAN BE IGNORED.
D/LeakCanary? * com.gmspartnersltd.earthmiles.views.ActivitySignUp_ has leaked:
D/LeakCanary? * GC ROOT static android.text.TextLine.sCached
D/LeakCanary? * references array android.text.TextLine[].[1]
D/LeakCanary? * references android.text.TextLine.mCharacterStyleSpanSet
D/LeakCanary? * references android.text.SpanSet.spans
D/LeakCanary? * references array android.text.style.CharacterStyle[].[1]
D/LeakCanary? * references com.gmspartnersltd.earthmiles.views.ActivitySignUp$2.this$0 (anonymous class extends android.text.style.ClickableSpan)
D/LeakCanary? * leaks com.gmspartnersltd.earthmiles.views.ActivitySignUp_ instance
D/LeakCanary? [ 05-22 08:54:52.160 13969:18091 D/LeakCanary ]
* Reference Key: bb8124a9-2829-4ff3-8ded-13cf35f80f54
D/LeakCanary? * Device: Genymotion generic Google Nexus 5 - 5.0.0 - API 21 - 1080x1920 vbox86p
D/LeakCanary? * Android Version: …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改django包中的字段管理中的字段顺序(其余框架)
我定义了一个新的管理员,但得到了"已经注册的模型"错误.当然必须有办法做到这一点?
from rest_framework.authtoken.models import Token
class AuthTokenAdmin(admin.ModelAdmin):
list_display = ('user', 'key',)
admin.site.register(Token, AuthTokenAdmin)
Run Code Online (Sandbox Code Playgroud) django ×4
android ×3
python ×2
celery ×1
clock ×1
ddms ×1
django-admin ×1
django-orm ×1
fix-protocol ×1
heroku ×1
leakcanary ×1
memory-leaks ×1
quickfix ×1