我是 django 的初学者,
i am begginer in django ,
Q1-> 我不知道为什么 "GroupMember" 模型没有显示在管理面板中。
Q2-> 为什么“members = models.ManyToManyField(User,through="GroupMember")”字段也没有显示
管理面板
from django.conf import settings
from django.core.urlresolvers import reverse
from django.db import models
from django.utils.text import slugify
# from accounts.models import User
import misaka
from django.contrib.auth import get_user_model
User = get_user_model()
from django import template
register = template.Library()
class Group(models.Model):
name = models.CharField(max_length=255, unique=True)
slug = models.SlugField(allow_unicode=True, unique=True)
description = models.TextField(blank=True, default='')
description_html = models.TextField(editable=False, default='', blank=True)
members = models.ManyToManyField(User,through="GroupMember")
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
self.description_html = misaka.html(self.description)
super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse("groups:single", kwargs={"slug": self.slug})
class Meta:
ordering = ["name"]
class GroupMember(models.Model):
group = models.ForeignKey(Group, related_name="memberships")
user = models.ForeignKey(User,related_name='user_groups')
def __str__(self):
return self.user.username
class Meta:
unique_together = ("group", "user")
enter image description here
首先,您应该将您的应用程序添加到 settings.py 中的 INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
'your_app',
...
]
然后你必须像这样在 your_app/admin.py 中注册你的模型:
from django.contrib import admin
from .models import Group, GroupMember
admin.site.register(Group)
admin.site.register(GroupMember)
Q1-> 我不知道为什么 "GroupMember" 模型没有显示在管理面板中。 Q2-> 为什么“members = models.ManyToManyField(User,through="GroupMember")”字段也没有显示 管理面板
from django.conf import settings
from django.core.urlresolvers import reverse
from django.db import models
from django.utils.text import slugify
# from accounts.models import User
import misaka
from django.contrib.auth import get_user_model
User = get_user_model()
from django import template
register = template.Library()
class Group(models.Model):
name = models.CharField(max_length=255, unique=True)
slug = models.SlugField(allow_unicode=True, unique=True)
description = models.TextField(blank=True, default='')
description_html = models.TextField(editable=False, default='', blank=True)
members = models.ManyToManyField(User,through="GroupMember")
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
self.description_html = misaka.html(self.description)
super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse("groups:single", kwargs={"slug": self.slug})
class Meta:
ordering = ["name"]
class GroupMember(models.Model):
group = models.ForeignKey(Group, related_name="memberships")
user = models.ForeignKey(User,related_name='user_groups')
def __str__(self):
return self.user.username
class Meta:
unique_together = ("group", "user")
enter image description here
首先,您应该将您的应用程序添加到 settings.py 中的 INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
'your_app',
...
]
然后你必须像这样在 your_app/admin.py 中注册你的模型:
from django.contrib import admin
from .models import Group, GroupMember
admin.site.register(Group)
admin.site.register(GroupMember)