我有一个名为Artist的模型,现在我正在为Artist DetailView构建评论部分。
我已经构建了一个名为ArtistComment的模型,创建了一个CreateView并使用模态div将其添加到DetailView中,因此它看起来更好。唯一的问题是,当您点击“添加评论”时,模式会同时显示“艺术家”和“评论”字段。艺术家字段是一个下拉菜单,用于选择应用评论的艺术家。我希望能够隐藏“艺术家”字段,并根据您从“添加评论”链接的页面进行自动完成。
我设法通过'self.request.user'让'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>
答案 0 :(得分:1)
要隐藏艺术家字段,请从字段中删除artist
。
要让ArtistCommentCreate
次观看中的艺术家重写网址,如下所示:
url(r'^(?P<artist>\d+)/artistcomment/add/$', login_required(views.ArtistCommentCreate.as_view()), name='artistcomment-add'),
并在您的详细信息html:
<a data-toggle="modal" data-target="#artistcommentModal" href="{% url 'events:artistcomment-add' artist= artist.id%}">Add A New Comment</a>
在评论视图中将艺术家pk设为self.kwargs.get('artist')