當我添加新資料時,它會提出物件(1)。如果我進入具有多對一關系的表格,它不會顯示 ID,而是顯示“物件 (1)。我嘗試更改欄位集,但這不起作用。當我去創建一個“UserAdmin " 它會像添加用戶一樣對待它。


管理員.py
from lib2to3.pgen2.token import OP
from statistics import mode
from attr import field
from .forms import createUserForm
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import Account, sni, Question, Option
class AccountAdmin(UserAdmin):
list_display = ('userID', 'is_staff', 'is_admin')
search_fields = ['userID']
readonly_fields = ()
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('userID','name','password1','password2','dateOfBirth','homeAddress', 'is_staff', 'is_admin', 'sni'),
}),
)
filter_horizontal = ()
list_filter = ()
fieldsets = ()
ordering = ('userID',)
admin.site.register(Account, AccountAdmin)
admin.site.register(sni)
admin.site.register(Question)
admin.site.register(Option)
模型.py
from asyncio import FastChildWatcher
import email
from pyexpat import model
from xxlimited import Null
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
class userCouncil(BaseUserManager):
def create_user(self, userID, password=None):
if not email:
raise ValueError("Email is required")
user = self.model(userID = self.normalize_email(userID))
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, userID, password):
user = self.model(userID = self.normalize_email(userID))
user.set_password(password)
user.is_staff = True
user.is_admin = True
user.save(using=self._db)
return user
class sni(models.Model):
SNI = models.CharField(max_length=256, primary_key=True)
Used = models.IntegerField(null=True, blank=True)
password = None
USERNAME_FIELD = 'SNI'
def __str__(self):
return self.SNI
class Account(AbstractBaseUser):
userID = models.EmailField(primary_key= True ,max_length=256, unique=True)
name = models.CharField(max_length=100)
dateOfBirth = models.DateField(max_length=8, null=True)
homeAddress = models.CharField(max_length=100, null=True)
is_staff = models.BooleanField(default=False)
is_admin = models.BooleanField(default=False)
sni = models.OneToOneField(sni, on_delete=models.CASCADE, null=True, blank=True)
USERNAME_FIELD = 'userID'
objects = userCouncil()
def __str__(self):
return self.userID
def has_perm(self, perm, obj=None):
return self.is_admin
def has_module_perms(self, app_label):
return True
class Question(models.Model):
QuestionsID = models.IntegerField(primary_key=True, unique=True)
QuestionText = models.CharField(max_length=256, null = True)
class Option(models.Model):
OptionID = models.IntegerField(primary_key=True, unique=True)
OptionText = models.CharField(max_length=256, null=True)
QuestionsID = models.ForeignKey(Question, on_delete=models.CASCADE)
uj5u.com熱心網友回復:
您的Question模型需要def __str__(self)像您的Account模型一樣的功能。如果你想用問題 ID 來表示它,它應該如下所示:
def __str__(self):
return self.QuestionsID
我不記得它是否會因為它是字串以外的其他資料型別而出錯,在這種情況下只需將其轉換為字串
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422723.html
標籤:
下一篇:在django中找出月份的差異
