Mac最新版Django2.x簡易上手博客搭建筆記(三)2020-01-23

1.2添加新條目
1.2.1用于添加新條目的表單
forms.py

from .models import Topic,Entry

class EntryForm(forms.ModelForm):
    class Meta:
        model = Entry
        fields=['text']
        lables={'text':''}
        widgets={'text': forms.Textarea(attrs={'cols':40})}

1.2.2URL模式new_entry
urls.py

    re_path('new_entry/(?P<topic_id>\d+)/$', views.new_entry, name='new_entry'),

1.2.3 視圖模式new_entry()
views.py

from .forms import TopicForm,EntryForm
def new_entry(request,topic_id):
    """在特定主題下添加條目"""
    topic = Topic.objects.get(id=topic_id)

    if request.method != 'POST':
        #未提交數(shù)據(jù):創(chuàng)建一個(gè)新表單
        form=EntryForm()
    else:
        #POST提交的數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理
        form =  EntryForm(data=request.POST)
        if form.is_valid():
            form.save()
            new_entry=form.save(commit=False)
            new_entry.topic = topic
            new_entry.save()
            #這里不一樣哦!!!!
            # return HttpResponseRedirect(reverse('users:topic', args=[topic.id]))

            return HttpResponseRedirect(reverse('users:topic', kwargs=dict(topic_id=topic.id)))

    context={'topic':topic,'form':form}
    return render(request,'new_entry.html',context)

1.2.4模板new_entry.html
new_entry.html


{% extends "base.html" %}
{% block content %}
    <p><a href= "{% url 'users:topic' topic.id %}">{{ topic }}</a></p>
{# topic.id  而不是topic_id #}
    <p>Add a new Entry:</p>

    <form action= "{% url 'users:new_entry' topic.id %}" method ='post'>
        {% csrf_token %}
        {{ form.as_p }}
        <button name="submit">add entry</button>
    </form>
{% endblock content %}

1.2.5鏈接到頁面new_entry
topic.html

 <p>Entries:</p>
    <p>
        <a href="{%  url 'users:new_entry' topic.id %}">add new entry</a>
    </p>

歡迎關(guān)注我的微信公眾號(hào)~立志做一個(gè)有智慧,財(cái)富自由的程序媛

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容