1. 程式人生 > >Django管理文章欄目

Django管理文章欄目

一 管理文章欄目思維導圖

二 新建article應用

1 建立應用

(venv) E:\Django\mysite\mysite>python manage.py startapp article

2 配置應用

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'account',
    'password_reset',
    # 新增的應用
    'article',
]

三 欄目的資料模型

1 新建資料模型mysite/article/models.py

from django.db import models
from django.contrib.auth.models import User

class ArticleColumn(models.Model):
    # ForeignKey實現ArticleColumn與User之間一對多的關係
    user = models.ForeignKey(User, related_name='article_column')
    column = models.CharField(max_length=200)
    created = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.column

2 遷移資料

(venv) E:\Django\mysite\mysite>python manage.py makemigrations
(venv) E:\Django\mysite\mysite>python manage.py migrate

3 建立表單類mysite/article/forms.py

from django import forms
from .models import ArticleColumn

class ArticleColumnForm(forms.ModelForm):
    class Meta:
        model = ArticleColumn
        fields = ("column",)

四 編輯URL

1 編輯專案URL mysite/mysite/urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include("blog.urls", namespace="blog", app_name="blog")),
    url(r'^account/', include("account.urls", namespace='account', app_name='account')),
    url(r'^pwd_reset/', include("password_reset.urls", namespace='pwd_reset', app_name='pwd_reset')),
    url(r'^article/', include('article.urls', namespace='article', app_name='article')),
]

2 編輯應用URL mysite/article/urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^article-column/$', views.article_column, name="article_column"),
]