下面是定义模型的代码
class Post(models.Model):
id = models.IntegerField(primary_key=True)
body = models.CharField(max_length=50000)
timestamp = models.DateTimeField(auto_now=True)
author_id = models.ForeignKey(settings.AUTH_USER_MODEL, default=None)
def get_absolute_url(self):
return reverse('display_post', args=[self.id])
下面是视图函数
@login_required
def new_post(request):
form = PostForm()
if request.method == 'POST':
form = PostForm(data=request.POST)
if form.is_valid():
post = form.save(request.user)
print(post.id)
print(post.body)
print(post.timestamp)
print(post.author_id)
# return redirect(post)
return render(request, 'post.html', {'form': form})
这是数据库中的一条记录15|hello world|2016-12-25 01:59:33.898952|zhou@zhou.com15就是主键的值,除了print(post.id)为None外,其他都有值。有谁知道为什么只有post.id为None,但又可以获取其他属性的值得原因吗?
PostForm代码
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('body',)
def save(self, user_id):
self.instance.author_id = user_id
return super().save()
添加回答
举报
0/150
提交
取消