![](/img/trans.png)
[英]in django CreateView, how do I add field and send that field as a context to template?
[英]How do I 'Autofill' a CreateView field
我有一個稱為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>
要隱藏藝術家字段,請從字段中刪除artist
。
要在ArtistCommentCreate
獲得藝術家, ArtistCommentCreate
按如下所示重寫URL:
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>
在您的評論視圖中,將artist pk作為self.kwargs.get('artist')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.