簡體   English   中英

如何“自動填充” CreateView字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM