私は学習目的でメザニンで小さなブログを作成しており、「mezzanine.pages.models.Page」をサブクラス化してこのモデルを管理者に登録することにより、カスタムコンテンツタイプを追加したいと考えています。私のクラスは次のようになります。
models.py:
from django.db import models
from mezzanine.pages.models import Page
class Student(Page):
dob = models.DateField("Date of birth")
name = models.CharField("Name", max_length=30)
gender = models.CharField("Gender", max_length = 5, choices=(('M','Male'),
('F','Female')), default = 'M')
image = models.ImageField(upload_to='Students')
class Project(models.Model):
student = models.ForeignKey("Student")
project_image = models.ImageField(upload_to="StudentProjects")
admin.py:
from copy import deepcopy
from django.contrib import admin
from mezzanine.pages.admin import PageAdmin
from .models import Student, Project
student_extra_fieldsets = ((None, {"fields": ("dob","name","gender","image")}),)
class ProjectInline(admin.TabularInline):
model = Project
class StudentAdmin(PageAdmin):
inlines = (ProjectInline,)
fieldsets = deepcopy(PageAdmin.fieldsets) + student_extra_fieldsets
admin.site.register(Student, StudentAdmin)
ここで、「http:// localhost:8000 / admin / pages / page /」にアクセスして新しく登録したコンテンツタイプを追加すると、名前のない空のオプションが表示されますが、選択すると、カスタムコンテンツタイプ「Student」が表示されます。 "追加および編集するページ。
DjangoとMezzanineを使い始めたばかりなので、簡単に理解することはできません。
バックエンドとして「sqlite 」を使用しており、「 South」は使用していません
これへのポインタはありますか?
あなたの助けに感謝します:)