小编nim*_*smi的帖子

Django过滤ModelFormSet字段选择...不同于限制Formset的查询集

我知道可以覆盖modelformset'使用'的默认查询集.这只是限制了创建表单的对象.

我还发现了一个Stack Overflow问题,关于在Django ModelForm中过滤ForeignKey选项,但不是ModelForm 集,并且关于限制Django formset中的可用选项,而不是模型 FormSet.我在下面提供了此代码的版本.

我想要做的是渲染一个ModelFormSet,用于学校类('teachinggroup'或'theclass'以避免与'class'关键字冲突),其中一个字段受查询集限制.这是针对教师的班级编辑表格,能够将学生重新分配到不同的班级,但仅限于同一队列中的班级.

我的models.py

class YearGroup(models.Model):
    intake_year = models.IntegerField(unique=True)
    year_group = models.IntegerField(unique=True, default=7)
    def __unicode__(self):
        return u'%s (%s intake)' % (self.year_group, self.intake_year)

    class Meta:
        ordering = ['year_group']

class TeachingGroup(models.Model):
    year = models.ForeignKey(YearGroup)
    teachers = models.ManyToManyField(Teacher)
    name = models.CharField(max_length=10)
    targetlevel = models.IntegerField()
    def __unicode__(self):
        return u'Y%s %s' % (self.year.year_group, self.name)

    class Meta:
        ordering = ['year', 'name']
Run Code Online (Sandbox Code Playgroud)

我的views.py

def edit_pupils(request, teachinggroup):
    theclass = TeachingGroup.objects.get(name__iexact = teachinggroup)
    pupils = theclass.pupil_set.all() …
Run Code Online (Sandbox Code Playgroud)

django django-forms

7
推荐指数
1
解决办法
5003
查看次数

为什么python双引号在文件名中转换为连字符?

我正在使用 Django 中的 ReportLab 生成一些 pdf。我遵循并试验了这个问题的答案,并意识到其中的双引号没有意义:

response['Content-Disposition'] = 'inline; filename=constant_"%s_%s".pdf'\
% ('foo','bar')
Run Code Online (Sandbox Code Playgroud)

给出文件名 constant_-foo_bar-.pdf

response['Content-Disposition'] = 'inline; filename=constant_%s_%s.pdf' \
% ('foo','bar')
Run Code Online (Sandbox Code Playgroud)

给出文件名 constant_foo_bar.pdf

为什么是这样?它只是与文件系统的 slug-esque 消毒有关吗?

python string django reportlab

5
推荐指数
1
解决办法
501
查看次数

Django:遍历 OneToOneField 关系,访问模型的“user”字段 - NameError

我有两个应用程序,“account”和“myapp”。我试图在视图中仅显示那些与 request.user 属于同一组织的教师对象。

帐户/models.py
from django.contrib.auth.models import User

class Organisation(models.Model):
    name = models.CharField(max_length=100, unique=True)
    is_active = models.BooleanField(default=True)

class UserProfile(models.Model):
    user = models.OneToOneField(User, unique=True)
    organisation = models.ForeignKey(Organisation, editable=False)
    is_organisationadmin = models.BooleanField(default=False)

User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
Run Code Online (Sandbox Code Playgroud)

请注意此博客文章中的最后一行,它允许通过以下方式访问用户个人资料信息user.profile.organisation

myapp/models.py
from django.contrib.auth.models import User

class Teacher(models.Model):
    user = models.OneToOneField(User, related_name='teacher')
Run Code Online (Sandbox Code Playgroud) myapp/views.py
from myproject.account.models import Organisation, UserProfile
from myproject.myapp.models import Teacher
from django.contrib.auth.models import User

def homepage(request):
    if request.user.is_authenticated():
        teachers = Teacher.objects.filter(user.profile.organisation == request.user.profile.organisation, user__is_active = True)
Run Code Online (Sandbox Code Playgroud)

我收到“/homepage/ 处的 NameError,未定义全局名称“用户””。我认为这是因为我没有正确访问每个 Teacher 对象的 …

django one-to-one user-profile nameerror

1
推荐指数
1
解决办法
4560
查看次数