同时编辑主题及其子条目
Editing a topic and its sub entries at the same time
我想同时编辑一个条目及其子项。
所以我有一个 Price 模型,它的外键是 Entry(另一个模型)。
class Price(models.Model):
price = models.ForeignKey(Entry, on_delete = models.CASCADE)
ptext = models.FloatField(blank = True, null = True)
date_added = models.DateTimeField(auto_now_add = True)
class Meta:
verbose_name_plural = 'prices'
def __str__(self):
return self.ptext[:50] + "..." `
如何从入门模型中提取价格?
我只能修改入口模型里面的数据,不能修改价格模型。实例部分特别给出了一个问题。我不知道要为 PriceForm 实例添加什么。
def edit_entry(request, entry_id):
entry = Entry.objects.get(id = entry_id)
price = entry.price_set.get.all()
topic = entry.topic
check_topic_owner(topic.owner, request.user)
if request.method != 'POST':
form = EntryForm(instance = entry)
form2 = PriceForm(instance = price)
else:
form = EntryForm(instance=entry, data = request.POST)
form2 = PriceForm(instance=price, data = request.POST)
if form.is_valid() and form2.is_valid():
form.save()
form2.save()
return HttpResponseRedirect(reverse('learning_logs:topics'))
context = {'entry': entry, 'topic': topic, 'form': form, 'form2':form2}
return render(request, 'learning_logs/edit_entry.html', context)
要从 entry 对象中获取所有 price 对象,您应该使用
price = entry.price_set.all()
而不是
price = entry.price_set.get.all()
我想同时编辑一个条目及其子项。
所以我有一个 Price 模型,它的外键是 Entry(另一个模型)。
class Price(models.Model):
price = models.ForeignKey(Entry, on_delete = models.CASCADE)
ptext = models.FloatField(blank = True, null = True)
date_added = models.DateTimeField(auto_now_add = True)
class Meta:
verbose_name_plural = 'prices'
def __str__(self):
return self.ptext[:50] + "..." `
如何从入门模型中提取价格?
我只能修改入口模型里面的数据,不能修改价格模型。实例部分特别给出了一个问题。我不知道要为 PriceForm 实例添加什么。
def edit_entry(request, entry_id):
entry = Entry.objects.get(id = entry_id)
price = entry.price_set.get.all()
topic = entry.topic
check_topic_owner(topic.owner, request.user)
if request.method != 'POST':
form = EntryForm(instance = entry)
form2 = PriceForm(instance = price)
else:
form = EntryForm(instance=entry, data = request.POST)
form2 = PriceForm(instance=price, data = request.POST)
if form.is_valid() and form2.is_valid():
form.save()
form2.save()
return HttpResponseRedirect(reverse('learning_logs:topics'))
context = {'entry': entry, 'topic': topic, 'form': form, 'form2':form2}
return render(request, 'learning_logs/edit_entry.html', context)
要从 entry 对象中获取所有 price 对象,您应该使用
price = entry.price_set.all()
而不是
price = entry.price_set.get.all()