标签: limit-choices-to

Django limit_choices_to用于具有"或"条件的多个字段

我试图通过检查两列"share_holder"和"distributor"的值来限制字段的选择.如果它们中的任何一个是真的,那么我想要那个选择.

在下面的版本中,我只有满足两个条件的选择('share_holder':True AND'distributor':True).

limit_choices_to={'share_holder': True, 'distributor': True}
Run Code Online (Sandbox Code Playgroud)

但是,我需要选择('share_holder':True OR''distributor':True).

django limit-choices-to

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

django:如何限制formset中的字段选择?

我在限制formset中的可选选项时遇到了问题.我有以下模型:员工,部门,项目,项目类型,成员资格和角色.员工可以在表单集中添加/删除他们为给定部门项目播放的角色,表单应该将可选项目限制为仅属于员工所属部门的项目.

楷模:

class Department(models.Model):
    name = models.CharField(max_length=20)
    def __unicode__(self):
    return self.name

class Employee(models.Model):
    fname = models.CharField(max_length=15)
    department = models.ForeignKey(Department)
    def __unicode__(self):
        return self.fname

class Projecttype(models.Model):
    name = models.CharField(max_length=20)
    def __unicode__(self):
        return self.name

class Project(models.Model):
    projecttype = models.ForeignKey(Projecttype)
    department = models.ForeignKey(Department)
    members = models.ManyToManyField(Employee, through='Membership')
    def __unicode__(self):
       return "%s > %s" % (self.department, self.projecttype)

class Role(models.Model):
    name = models.CharField(max_length=20)
    def __unicode__(self):
       return self.name

class Membership(models.Model):
    project = models.ForeignKey(Project, null=True)
    department = models.ForeignKey(Department)
    employee = models.ForeignKey(Employee)
    role = models.ManyToManyField(Role, blank=True, null=True)
    class …
Run Code Online (Sandbox Code Playgroud)

forms django options django-forms limit-choices-to

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

Django MTMField:limit_choices_to = other_ForeignKeyField_on_same_model?

我有几个django模型看起来像这样:

from django.contrib.sites.models import Site

class Photo(models.Model):
    title = models.CharField(max_length=100)
    site = models.ForeignKey(Site)
    file = models.ImageField(upload_to=get_site_profile_path) 

    def __unicode__(self):
        return self.title


class Gallery(models.Model):    
    name = models.CharField(max_length=40)
    site = models.ForeignKey(Site)
    photos = models.ManyToManyField(Photo, limit_choices_to = {'site':name} )    

    def __unicode__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Gallery模型的各种乐趣limit_choices_to.我只希望管理员显示与此图库属于同一网站的照片的选项.这可能吗?

python django foreign-keys limit-choices-to manytomanyfield

5
推荐指数
2
解决办法
4432
查看次数

Django:"limit_choices_to"在ManyToManyField上不起作用

我正在运行Django 1.1并且无法获取我的ManytoManyField的"limit_choices_to"选项.

我有两个型号:

class MemberPhoto(ImageModel):
    title       = models.CharField(_('title'), max_length=255, blank=True, null=True)
    caption     = models.CharField(_('caption'), max_length=255, blank=True, null=True)
    date_added  = models.DateTimeField(_('date added'), default=datetime.now, editable=False)
    member      = models.ForeignKey(User)

    def __unicode__(self):
        return u'%s (%s)' % (self.member.username, self.id)
Run Code Online (Sandbox Code Playgroud)

class lock(models.Model):
    user = models.ForeignKey(User, related_name="owner")
    to_user = models.ForeignKey(User, related_name="to_user")
    unlocked_photos = models.ManyToManyField(MemberPhoto, blank=True, null=True, limit_choices_to = {'member':'user'})
    objects = locking_manager()
Run Code Online (Sandbox Code Playgroud)

在第二个模型中,我想确保在Django的管理员中,在多个选择字段中呈现的唯一"unlocked_photos"("MemberPhoto"对象)是具有"成员"值(用户对象)的那些与"锁定"对象的"用户"(也是一个用户对象).

我以为我已经遵循了Django文档,但它不起作用.我收到以下错误:

TemplateSyntaxError

Caught an exception while rendering: invalid input syntax for integer: "user"
Run Code Online (Sandbox Code Playgroud)

我已经尝试将"limit_choices_to"改为:

limit_choices_to = {'member':user} ---不起作用

limit_choices_to = {'member__username':'kyle'} ---这可行,但它没用,我只是手动指定用户名

我怎样才能从当前的"锁定"对象中获取用户并按此过滤MemberPhoto"member"属性? …

django admin limit-choices-to manytomanyfield

5
推荐指数
2
解决办法
6072
查看次数