gpt4 book ai didi

django - 保存表单数据会重写同一行

转载 作者:行者123 更新时间:2023-12-04 12:37:01 25 4
gpt4 key购买 nike

我不知道如何保存创建新行的表单数据,保存时仅使用相同的“id”重写数据,并在有多行时出现错误,这是我的代码:

models.py:

类Submitter(models.Model):
Submitter = models.ForeignKey(用户)

def __unicode __(自己):
返回self.submitter.username

类Store(models.Model):
creator = models.ForeignKey(Submitter)
名称= models.CharField(_('名称'),空白=真实,最大长度= 30)
st = models.CharField(_('Street'),blank = True,max_length = 30)
sub_date = models.DateField(_('访问日期'),)

def __str __():
返回u'%s-%s-%s'%(self.creator,self.name,self.sub_date)

views.py:

def StoreSave(请求):
如果request.method =='POST':
表格= StoreForm(request.POST)
如果form.is_valid():
提交者,虚拟= Creator.objects.get_or_create(creator = request.user)
存储,已创建= Store.objects.get_or_create(
提交者=提交者
)
store.name = form.cleaned_data ['name']
store.st = form.cleaned_data ['st']
store.visit_date = form.cleaned_data ['visit_date']
store.save()
返回HttpResponseRedirect('/user/%s/'%request.user.username)
别的:
形式= StoreForm()
变量= RequestContext(request,{
“表格”:表格
})
返回render_to_response('store/create_store.html',变量)

最佳答案

如果要创建新行,请创建它。 :-) 喜欢

store = Store(submitter=submitter,
name=form.cleaned_data['name'],
st=form.cleaned_data['st'],
store.visit_date=form.cleaned_data['visit_date'])
store.save()

现在,您使用 get_or_create方法来尝试查找具有给定参数的行,因此这就是更新它的原因。当有多行时,此方法将引发错误,是的,这是它的正常行为。

顺便说一句,最好将此保存代码放入表单的方法中(例如 save)。

P. S.刚刚注意到您的模型中没有 visit_date字段,我想您的意思是 sub_date

关于django - 保存表单数据会重写同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891871/

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