gpt4 book ai didi

Django 管理表单 - 如何动态更改选择值

转载 作者:行者123 更新时间:2023-12-04 14:38:50 27 4
gpt4 key购买 nike

我有这样的情况:我有模型 Item、Region 和 Country。

class Item(models.Model):
name = models.CharField(max_length=255)
alias = models.SlugField(unique=True)
country = models.OneToOneField(Country, default=0)
region = models.OneToOneField(Region, default=0, related_name='')

class Region(models.Model):
name = models.CharField(max_length=100)
country = models.ForeignKey(Country, default=0)

class Country(models.Model):
name = models.CharField(max_length=100)

当我在管理区域添加项目并选择国家/地区时,我希望仅从所选的国家/地区自动构建带有Regions的区域选择。

我知道如何在 javascript 中做到这一点,但我不知道在 Django 中这样做有多正确。

最佳答案

您需要覆盖管理表单的 clean 方法:

def clean(self):
super(CustomItemForm, self).clean() #if necessary
if 'region' in self._errors:
"""
reset the value (something like this i
think to set the value b/c it doesnt get set
b/c the field fails validation initially)
"""
region = Region.objects.get(pk=self.data['region'])
self.initial['region'] = region.id
self.cleaned_data['region'] = region
self.region = region

# remove the error
del self._errors['region']

return self.cleaned_data

关于Django 管理表单 - 如何动态更改选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com