【发布时间】:2020-02-01 07:56:39
【问题描述】:
如果之前有人提出过这个问题,我深表歉意。但是我已经为此苦苦挣扎了几个星期,找不到任何有用的东西。
我有以下问题(它被简化了很多,但本质上是我的问题)
我有一个包含很多字段的模型。这叫
class DocAide(models.Model):
id = models.AutoField(primary_key=True)
pulse = models.DecimalField('Pulse', max_digits=3, decimal_places=0)
weight = models.DecimalField('Weight (kg)', max_digits=3, decimal_places=0)
bp_sys = models.DecimalField('BP Sys', max_digits=3, decimal_places=0)
bp_dia = models.DecimalField('BP Dia', max_digits=3, decimal_places=0)
temperature = models.DecimalField('Temp. deg C', max_digits=2, decimal_places=1)
drugs = models.ManyToManyField(Drug, blank=True)
date = models.DateField(editable=False, default=timezone.now)
doctors_notes = models.TextField('Patient is complaining about:', default='')
note = models.TextField(max_length=100, default='')
ForeignKey Drugs 有数量的药物名称我希望可以选择多种药物,但编辑字段显示需要服用的剂量和时间,它应该像处方。模型如下所示:
class Drug(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, default='')
QUANTITY_STR = ['Bottle', 'Tablet' 'Injection', 'Capsules', 'other']
QUANTITY = ((str, str) for str in QUANTITY_STR)
quantity = models.CharField(max_length=2, choices=QUANTITY, default='Bottle')
category = models.CharField(max_length=150, default='')
strength = models.CharField(max_length=150, default='')
in_supply_stock = models.PositiveIntegerField(default=0)
in_main_stock = models.PositiveIntegerField(default=0)
date = models.DateField(editable=False, default=timezone.now)
charge = models.PositiveIntegerField(default=0)
morning = models.CharField(validators=[int_list_validator], max_length=3, default=0)
midday = models.CharField(validators=[int_list_validator], max_length=3, default=0)
evening = models.CharField(validators=[int_list_validator], max_length=3, default=0)
night = models.CharField(validators=[int_list_validator], max_length=3, default=0)
days = models.CharField(validators=[int_list_validator], max_length=3, default=0)
tablets = models.CharField(validators=[int_list_validator], max_length=3, default=0)
如何在表单或模板中实现这一点。我尝试使用 Inlineformset 它不起作用。稍后我也想让它们预选。
但现在我想要一个按钮,它会生成一个带有药物下拉列表和模型编辑字段的行。
提前谢谢你。
【问题讨论】:
-
在回答您的问题之前:
drugs是ManyToMany field。你确定这是你想要的吗?您在谈论处方,我希望同一种药物在每个处方上的数量等不同。 -
ManyToMany 字段之所以被选中,是因为处方可以包含多种药物,例如对乙酰氨基酚和抗生素。
标签: django model-view-controller inline-formset