如何在Django模型中设置外键字段以不返回任何值?

一句话

我有一个像Django模型:

class hotel(models.Model):
   name = models.CharField(max_length=60)
   city = models.ForeignKey('city', on_delete=models.DO_NOTHING)
   state = models.ForeignKey('state', on_delete=models.DO_NOTHING)
   country = models.ForeignKey('country', on_delete=models.DO_NOTHING)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "hotels"

class city(models.Model):
   name = models.CharField(max_length=60)
   state = models.ForeignKey('state', on_delete=models.DO_NOTHING)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "cities"

class state(models.Model):
   name = models.CharField(max_length=60)
   country = models.ForeignKey('country', on_delete=models.DO_NOTHING)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "states"

class country(models.Model):
   name = models.CharField(max_length=60)
   code = models.CharField(max_length=160)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "countries"

和ModelForm一样:


class Hotel(ModelForm):
    class Meta:
        model = hotel
        fields = '__all__'

[编辑]从Hotel ModelForm创建表单对象时,Django自动填充外键字段的值。我想阻止那个。

例如:

form = Hotel() (Django自动填充城市,州和国家/地区的值)

我希望我的Django模板在下拉列表中返回所有国家/地区值,但不希望返回州和城市的下拉列表(因此,我希望在Django模板中,州和城市的下拉列表保持空白)。我怎样才能做到这一点?

PS-这样做的目的是先加载国家/地区值,然后根据用户对某个国家/地区的选择,先加载州,然后再加载城市。

伊恩·谢尔文顿

您可以在form__init__方法中覆盖选择,也可以在定义字段后使用一些技巧来设置选择

class Hotel(ModelForm):

    class Meta:
        model = hotel
        fields = '__all__'

    # Like this
    state = forms.ModelChoiceField(state.objects.all())
    state.choices = []
    city = forms.ModelChoiceField(city.objects.all())
    city.choices = []

    # Or like this...
    def __init__(self, data=None, *args, **kwargs):
        super().__init__(data=data, *args, **kwargs)
        if not data:
            self.fields['state'].queryset = state.objects.none()
            self.fields['city'].queryset = state.objects.none()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Django模型中创建一个值为值或外键的字段?

来自分类Dev

如何在Django中模拟模型的外键模型?

来自分类Dev

如何在django模型的外键字段中添加和更新数据

来自分类Dev

DynamoDB 如何在模型 c# 中设置“外键”

来自分类Dev

Django模型:使用外键中的字段

来自分类Dev

django中不同模型字段的外键

来自分类Dev

如何在不破坏整个应用程序的情况下用Django模型中的多对多替换外键?

来自分类Dev

Django从模型返回特定字段作为外键

来自分类Dev

Django从模型返回特定字段作为外键

来自分类Dev

(Laravel) 如何在模型中关联外键的外键

来自分类Dev

Django模型:汇总多个外键字段值的总和

来自分类Dev

如何基于同一模型中其他字段的值设置Django模型字段值

来自分类Dev

如何基于不同模型中其他字段的值设置Django模型字段的值

来自分类Dev

如何基于模型中的外键字段在django中开发下拉菜单

来自分类Dev

Python/Django:如何在 HTML 中同时显示主模型和“外键模型”

来自分类Dev

外键与Django模型中的相关字段冲突

来自分类Dev

在DJANGO模型中添加条件外键字段

来自分类Dev

Django:返回外键的自定义字段值替换为filter()中的ID号

来自分类Dev

通过外键返回与模型相关的字段

来自分类Dev

如何在Django中设置ManyToMany字段的值?

来自分类Dev

Django模型中带有外键的重复值

来自分类Dev

如何在映射Django模型中使用多个外键

来自分类Dev

如何在Django模型外键上添加条件?

来自分类Dev

如何在Django中获取模型实例的外键表的名称?

来自分类Dev

如何在Django模板中制作包含两个与外键链接的模型的过滤摘要?

来自分类Dev

如何在 Django 序列化程序中获取外键 ID 而不是引用模型

来自分类Dev

Django模型未设置外键对象

来自分类Dev

如何在Django中为外键字段定义__str__方法?

来自分类Dev

如何在Django Admin中计算外键字段,然后在列表中显示

Related 相关文章

  1. 1

    如何在Django模型中创建一个值为值或外键的字段?

  2. 2

    如何在Django中模拟模型的外键模型?

  3. 3

    如何在django模型的外键字段中添加和更新数据

  4. 4

    DynamoDB 如何在模型 c# 中设置“外键”

  5. 5

    Django模型:使用外键中的字段

  6. 6

    django中不同模型字段的外键

  7. 7

    如何在不破坏整个应用程序的情况下用Django模型中的多对多替换外键?

  8. 8

    Django从模型返回特定字段作为外键

  9. 9

    Django从模型返回特定字段作为外键

  10. 10

    (Laravel) 如何在模型中关联外键的外键

  11. 11

    Django模型:汇总多个外键字段值的总和

  12. 12

    如何基于同一模型中其他字段的值设置Django模型字段值

  13. 13

    如何基于不同模型中其他字段的值设置Django模型字段的值

  14. 14

    如何基于模型中的外键字段在django中开发下拉菜单

  15. 15

    Python/Django:如何在 HTML 中同时显示主模型和“外键模型”

  16. 16

    外键与Django模型中的相关字段冲突

  17. 17

    在DJANGO模型中添加条件外键字段

  18. 18

    Django:返回外键的自定义字段值替换为filter()中的ID号

  19. 19

    通过外键返回与模型相关的字段

  20. 20

    如何在Django中设置ManyToMany字段的值?

  21. 21

    Django模型中带有外键的重复值

  22. 22

    如何在映射Django模型中使用多个外键

  23. 23

    如何在Django模型外键上添加条件?

  24. 24

    如何在Django中获取模型实例的外键表的名称?

  25. 25

    如何在Django模板中制作包含两个与外键链接的模型的过滤摘要?

  26. 26

    如何在 Django 序列化程序中获取外键 ID 而不是引用模型

  27. 27

    Django模型未设置外键对象

  28. 28

    如何在Django中为外键字段定义__str__方法?

  29. 29

    如何在Django Admin中计算外键字段,然后在列表中显示

热门标签

归档