0
我有一个名为Artist的模型,现在我正在为Artist DetailView创建注释部分。如何自动填充CreateView字段
我已经构建了一个名为ArtistComment的模型,创建了一个CreateView并使用模态div将其添加到DetailView,因此看起来更好。唯一的问题是,当你点击“添加评论”时,模式会同时显示“艺术家”和“评论”字段。艺术家字段是一个下拉菜单,用于选择将评论应用于哪位艺术家。我希望能够隐藏“艺术家”字段,并根据您关注“添加评论”链接的网页进行自动填充。
我设法让'User'字段自动填充'self.request.user',但每当我尝试像self.request.artist_id这样的东西时,它会让我的模态窗体显示为空白。任何人都可以帮助我指出正确的方向来解决这个问题吗?
views.py:
class ArtistCommentCreate(CreateView):
model = ArtistComment
fields = ['artist', 'message',]
def get_success_url(self):
return reverse('events:artistdetail', kwargs={'pk': self.object.artist_id})
def form_valid(self, form):
form.instance.author = self.request.user
return super(ArtistCommentCreate, self).form_valid(form)
urls.py:
url(r'^artist-(?P<pk>[0-9]+)/$', login_required(views.ArtistDetailView.as_view()), name='artistdetail'),
url(r'^artistcomment/add/$', login_required(views.ArtistCommentCreate.as_view()), name='artistcomment-add'),
artistdetail.html:
<a data-toggle="modal" data-target="#artistcommentModal" href="{% url 'events:artistcomment-add' %}">Add A New Comment</a>
<div id="artistcommentModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body"></div>
</div>
</div>
</div>
感谢帮助,我想我快到了!我只是在评论视图中存在一些问题,我是否会像这样将'self.kwargs.get('artist')'添加到form_valid中; 'from.instance.artist = self.kwargs.get('artist')' –
@J_Clique你必须用'commit = False'保存表单,然后在obj返回的将是'ArtistComment'的一个实例,然后你可以将艺术家的价值设置为:'comment.artist = self.kwargs.get('artist')',然后保存评论实例。 –
@J_Clique如果你发现这个答案有帮助,并且接受它。 –