美文网首页
Mac最新版Django2.x简易上手博客搭建笔记(三)2020

Mac最新版Django2.x简易上手博客搭建笔记(三)2020

作者: 机器人会画画 | 来源:发表于2020-01-23 12:47 被阅读0次

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':
        #未提交数据:创建一个新表单
        form=EntryForm()
    else:
        #POST提交的数据,对数据进行处理
        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>

欢迎关注我的微信公众号~立志做一个有智慧,财富自由的程序媛

image

相关文章

网友评论

      本文标题:Mac最新版Django2.x简易上手博客搭建笔记(三)2020

      本文链接:https://www.haomeiwen.com/subject/cvdnzctx.html