- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果有必要按另一个模型的字段进行限制,您能否帮助我了解限制选择在模型中的工作原理。目前,我有两个模型:
组:
class Group(models.Model):
name = models.CharField(max_length=10, null=True)
leader = models.OneToOneField(
'Student',
related_name='+',
null=True,
blank=True,
on_delete=models.SET_NULL,
limit_choices_to={'group': 2},
)
和学生:
class Student(models.Model):
group = models.ForeignKey(Group, on_delete=models.PROTECT)
name = models.CharField(max_length=140, null=True)
brd_date = models.DateField(null=True)
ticket = models.IntegerField(null=True, unique=True)
如您所见,每个学生都有自己的组(由 ForeignKey 配置)。但是每个小组可能有也可能没有自己的领导者。它只是从他/她实际所属的组中选出的一个特定学生(由 OneToOneField 配置)。不受组限制,可以选择每个学生作为每个组的组长。在提供的组模型中,我设置了 limit_choices_to 选项以将选择限制为组 2(用于测试目的)。
是否可以动态设置此参数,从而有可能创建基于组模型的表单类,其中组长的选择允许仅选择该特定组中的学生?
提前致谢。
最佳答案
只是想分享适合我的方式。我只是使用 ModelForm 类来限制我的选择:
class GroupForm(ModelForm):
class Meta:
model = Group
fields = '__all__'
def __init__(self, *args, **kwargs):
super(GroupForm, self).__init__(*args, **kwargs)
self.fields['head'].queryset = Student.objects.filter(group=self.instance)
正如您在 .filter(group=self.instance) 的帮助下看到的那样,我可以限制我的选择,并有可能从仅属于该特定组的学生中选择负责人。
然后只是:
class UpdateGroup(LoginRequiredMixin, UpdateView):
model = Group
form_class = GroupForm
我想有一种方法可以在模型级别实现相同的结果,但我还没有找到它。
关于python - 在模型中动态指定 limit_choices_to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41501615/
这是正确的吗? class Customer(models.Model): account = models.ForeignKey(Account) class Order(models.Mo
如果有必要按另一个模型的字段进行限制,您能否帮助我了解限制选择在模型中的工作原理。目前,我有两个模型: 组: class Group(models.Model): name = models.
鉴于这两种模型,我希望我的 url FK(在 ClientKeyword 中)仅显示其客户端等于当前 ClientKeyword 客户端的 url。 我应该在 limit_choices_to 中放入
我试图通过检查“share_holder”和“distributor”两列的值来限制字段的选择。如果其中任何一个是真的,那么我想要那个选择。 在以下版本中,我只有满足两个条件的选择('share_ho
我正在运行 Django 1.1,无法让“limit_choices_to”选项让我的 ManytoManyField 正常工作。 我有两个模型: class MemberPhoto(ImageMod
我想在管理 UI 中使用 limit_choices_to 限制外键的选择;但是,我想在不更改模型的情况下实现这一点,因为模型是从库中引入的,我无法控制。动态实现这一目标的方式是什么?或者我可以使用管
我的 Django 数据库有两个模型:DeviceModel 和 Device。比方说,DeviceModel 对象是“LCD panel”,Device 对象是“LCD panel №547”。所以
我正在尝试在 Django OneToOneField 中使用“limit_choices_to”功能,其中我想要限制选择的上游是另一个外键。我在管理员中设置的方式遇到的错误是: invalid li
例如: class Foo(models.Model): bar = models.OneToOneField( 'app.Bar', limit_choice
我有两个类System和Station,它们继承自Base。 Base 类具有 Group 的外键,Station 具有System 的外键。 我正在尝试对后一个 FK 施加“limit_choice
我查看了所有文档,还访问了 IRC channel (顺便说一句,这是一个很棒的社区),他们告诉我,不可能在“当前用户”所在的字段中创建模型和限制选择外键。我将尝试用一个例子来解释这一点: class
如何在“limit_choices_to”中指定“NOT IN”?我只想获取所有客户详细信息,除非他们处于一种特定状态。 customer = models.ForeignKey(Customer,
我有两个模型Project 和Group。我的小组属于一个特定的项目。我的组有字段 project =foreignKey(Project) 和 parent =foreignKey('self')。
这是模型。我需要避免在 FilterValue 模型中引用 Filter 对象,这些对象已在 FilterValue 模型中引用。 class Filter(models.Model):
我是 Django 的新手,刚刚完成了第一个应用程序的制作教程。我有一个关于外键的问题 在 models.py 中我有两个类(class),分别称为 Post 和 GroupMeeting。在小组 s
我担心我想做的事情可能是不可能的,但我们开始吧: 在我的模型中,我有以下 Class ParentCategory(models.Model): name = models.CharField
我有一段代码如下: 模型.py class Notebook(models.Model): owner = models.ForeignKey(User, on_delete = models
我有几个看起来像这样的 django 模型: from django.contrib.sites.models import Site class Photo(models.Model): t
我有一种情况,我希望利用 Django 的自动完成管理小部件,它遵守引用模型字段限制。 例如我有以下 Collection具有属性 kind 的模型具有指定的选择。 class Collection(
我正在尝试使用 limit_choices_to 来限制 Django 管理员对 ForeignKey 的选择,但我不知道如何正确地做到这一点。 如果类别 ID 为 16,此代码将执行我想要的操作,但
我是一名优秀的程序员,十分优秀!