Django 创建和更新视图:外键字段



假设我有以下两个类:

class Parcel(models.Model):
name = models.CharField(max_length=NAME_MAX_LENGTH)
garden = models.ForeignKey(Garden, on_delete=models.CASCADE)
def __str__(self):
return self.name
class Bed(models.Model):
parcel = models.ForeignKey(Parcel, on_delete=models.CASCADE)
name = models.CharField(max_length=NAME_MAX_LENGTH)
length = models.IntegerField()
width = models.IntegerField()

我正在使用 Django 的通用视图来创建和更新新床。由于parcel是一个外键,Django 会自动创建一个包含数据库中所有现有包裹的选择输入。但是,我想告诉 Django 只放置具有特定garden_id的包裹。 我查看了函数get_initial(self),但我不想为包裹指定初始值,只是缩小了包裹的选择范围。

如果有人有想法,那对我有很大帮助。

谢谢。

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to

例:

staff_member = models.ForeignKey(
User,
on_delete=models.CASCADE,
limit_choices_to={'is_staff': True},
)

在您的情况下,可以使用:

limit_choices_to={'garden_id__in': ['list', 'of', 'valid', 'ids']}

源: 如何在 django 中将外键选择限制为相关对象

相关内容

  • 没有找到相关文章

最新更新