我在 Django 中有以下模型,用于存储有关药物的数据。
class Medicine(models.Model):
Medicine_Name = models.CharField(max_length=100)
User_Associated = models.ForeignKey(User, on_delete=models.CASCADE)
Tablets_In_Box = models.IntegerField()
Dose_in_mg = models.IntegerField()
Dose_Tablets = models.IntegerField()
Number_Of_Boxes = models.IntegerField()
Last_Collected = models.DateField()
def __str__(self):
return self.Medicine_Name
def get_absolute_url(self):
return reverse('tracker-home')
我正在尝试创建一个模型表单,用户可以在其中更新他们的一种药物的最后一个集合。这是我开始的。
class CollectionForm(forms.ModelForm):
class Meta:
model = Medicine
fields = ['Medicine_Name', 'Number_Of_Boxes', 'Last_Collected']
我不明白如何根据现场的“Medicine_Name”调用我的模型实例。换句话说,我需要用户能够从下拉菜单中选择正确的药物,然后表单必须更新我的药物模型上的“Last_Collected”和“Numer_Of_Boxes”字段。
https://docs.djangoproject.com/en/2.1/topics/forms/modelforms/#the-save-method
这似乎包含相关信息,但我很难了解如何在这种情况下使用它。如何根据表单中的用户输入正确获取我需要的药物表单实例?此外,如何在我的视图中使用 save 方法来确保数据库得到正确更新?
编辑为表单添加了视图:
def update(request, pk):
instance = Medicine.objects.get(id=pk)
if request.method == 'POST':
form = CollectionForm(user=request.user, instance=instance, data=request.POST)
if form.is_valid():
instance = form.save(commit=False)
instance.User_Associated = request.user
instance.save()
else:
form = CollectionForm()
context = {'form': form}
return render(request, 'tracker/medicine_collection.html', context )
哆啦的时光机
慕田峪7331174
HUWWW
相关分类