【发布时间】:2020-05-15 10:19:02
【问题描述】:
我有一个问题要问你。我有以下型号:
class Centro_di_costo(models.Model):
centro_di_costo = models.CharField('Centro di costo', max_length=30)
def __str__(self):
return self.centro_di_costo
class AltriCosti(models.Model):
STATUS_CHOICES= [
('VARIABILE', 'VARIABILE'),
('FISSO', 'FISSO'),
]
centro_di_costo = models.ForeignKey(Centro_di_costo)
sub_centro_di_costo = models.CharField('Categoria', max_length=30)
status = models.CharField(choices=STATUS_CHOICES)
price=models.DecimalField()
quantity=models.IntegerField()
我在很多视图中都使用它,但在其中一个视图中,我想设置值而不从 POST 请求传递。 所以我尝试通过以下方式设置ModelForm:
class ModCollaboratori(forms.ModelForm):
class Meta:
model = AltriCosti
fields = "__all__"
def __init__(self, *args, **kwargs):
super(ModCollaboratori, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_show_labels = False
self.fields['centro_di_costo'].value= "Servizi di Produzione"
self.fields['sub_centro_di_costo'].value = "Collaboratori esterni"
self.fields['status'].value = "VARIABILE"
但它不起作用。如何修复代码以使其正常工作?
【问题讨论】:
-
如果不使用
request.POST,可以简单的构造一个模型对象。 -
以哪种方式?这些模型还有其他我没有得到答案的领域。我总共有 5 个字段,其中三个(centro_di_costo、sub_centro_di_costo 和 status)我想在不从请求中传递的情况下输入一个值
-
然后你从你的模型字段中排除这些,并通过视图“注入”这些。
标签: django django-models django-forms django-views django-templates