我試圖在「微博」最小應用程序中保存100個字符的用戶表單。 我的代碼似乎沒有任何mystakes,但不起作用。 錯誤是在views.py中,我無法將外鍵保存到用戶表中。無法將表單內容保存到數據庫
models.py
看起來是這樣的:
class NewManager(models.Manager):
def create_post(self, post, username):
new = self.model(post=post, created_by=username)
new.save()
return new
class New(models.Model):
post = models.CharField(max_length=120)
date = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(User, blank=True)
objects = NewManager()
class NewForm(ModelForm):
class Meta:
model = New
fields = ['post']
# widgets = {'post': Textarea(attrs={'cols': 80, 'rows': 20})
def save_new(request):
if request.method == 'POST':
created_by = User.objects.get(created_by = user)
date = request.POST.get('date', '')
post = request.POST.get('post', '')
new_obj = New(post=post, date=date, created_by=created_by)
new_obj.save()
return HttpResponseRedirect('/')
else:
form = NewForm()
return render_to_response('news/new_form.html', {'form': form},context_instance=RequestContext(request))
我沒有在這裏提到的進口 - 他們做對了,反正。 我的錯誤是在views.py。當我試圖挽救它說:如果我把created_py
作爲參數賦值
之前引用
局部變量「CREATED_BY」,保存需要更多的參數。這真的很奇怪。
按四個空格縮進代碼(或選擇它並按Ctrl + K)。 – 2010-05-16 11:17:39
我對此感到困惑:'created_by = User.objects.get(created_by = user)',你確定'User'模型有'created_by'列嗎?但是,這應該會失敗,但是會出現'FieldError'。還有完整的回溯將是有益的。 – 2010-05-16 11:59:13