Tôi đang cố lưu 100 người dùng dạng ký tự trong ứng dụng tối thiểu 'microblog'. Mã của tôi dường như không có bất kỳ bí ẩn nào, nhưng không hoạt động. Lỗi ở trong views.py, tôi không thể lưu khoá ngoại vào bảng người dùng.Không thể lưu nội dung biểu mẫu vào cơ sở dữ liệu
models.py
trông như thế này:
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))
tôi không đề cập đến hàng nhập khẩu ở đây - họ đang làm đúng, dù sao. Lỗi của tôi là trong views.py. Khi tôi cố gắng tiết kiệm nó nói:
địa phương biến 'created_by' tham chiếu trước khi phân
Nếu tôi đặt created_py
như một tham số, tiết kiệm cần thêm tham số. Nó thực sự kỳ lạ.
Mã thụt lề bằng bốn dấu cách (hoặc chọn nó và nhấn Ctrl + K). –
Tôi bối rối bởi điều này: 'created_by = User.objects.get (created_by = user)', bạn có chắc 'Mô hình người dùng' có cột' created_by' không? Điều này sẽ thất bại với 'FieldError'. Ngoài ra traceback đầy đủ sẽ được hữu ích. –