我收到属性错误:当我尝试运行服务器并进行迁移时'SubscriptionForm'对象没有属性'model'



当我运行python manage.py runserver或makegration时,我会遇到这个回溯问题。我哪里错了?请帮忙。我"我也在试着把这个添加到管理网站上。谢谢

这实际上起过一次作用,所以我不确定我做错了什么,或者我做了什么改变才出现了这个错误。

回溯错误

Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libthreading.py", line 932, in _bootstrap_inner
self.run()
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libthreading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libsite-packagesdjangoutilsautoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libsite-packagesdjangocoremanagementcommandsrunserver.py", line 117, in inner_run
self.check(display_num_errors=True)
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libsite-packagesdjangocoremanagementbase.py", line 387, in check
all_issues = self._run_checks(
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libsite-packagesdjangocoremanagementbase.py", line 377, in _run_checks
return checks.run_checks(**kwargs)
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libsite-packagesdjangocorechecksregistry.py", line 72, in run_checks
new_errors = check(app_configs=app_configs)
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libsite-packagesdjangocontribadminchecks.py", line 56, in check_admin_app
errors.extend(site.check(app_configs))
File "C:UsersCharlieAppDataLocalProgramsPythonPython38-32libsite-packagesdjangocontribadminsites.py", line 81, in check
if modeladmin.model._meta.app_config in app_configs:
AttributeError: 'SubscriptionForm' object has no attribute 'model'

型号.py

class Subscription(models.Model):
firstName = models.CharField(max_length=100)
lastName = models.CharField(max_length=100)
username = models.CharField(max_length=100)
sub_type = models.BooleanField()
email = models.EmailField(max_length=100)
address = models.CharField(max_length=100)
address2 = models.CharField(max_length=100)
country = models.CharField(max_length=100)
state = models.CharField(max_length=100)
zip = models.CharField(max_length=10)
same_address = models.BooleanField()
save_info = models.BooleanField()
credit = models.BooleanField()
debit = models.BooleanField()
paypal = models.BooleanField()
cc_name = models.CharField(max_length=100)
cc_number = models.IntegerField()
cc_expiration = models.CharField(max_length=10)
cc_cvv = models.IntegerField()
def __str__(self):
return f'{self.firstName} {self.lastName}'

forms.py

class SubscriptionForm(forms.ModelForm):
class Meta:
model = Subscription
fields = [
'firstName',
'lastName',
'username',
'sub_type',
'email',
'address',
'address2',
'country',
'state',
'zip',
'same_address',
'save_info',
'credit',
'debit',
'paypal',
'cc_name',
'cc_number',
'cc_expiration',
'cc_cvv'
]

我已经追溯了我的步骤,可以说当我尝试将Subscription模型注册到管理页面时就会发生这种情况。我应该从进口吗.models导入Subscription或.forms导入SubscriptionForm?

管理员.py

from django.contrib import admin
from .models import Profile, Subscription
admin.site.register(Profile, Subscription)

当导入Subscription和SubscriptionForm 时,我仍然会得到相同的属性错误

您应该从模型导入并分别传递模型:

admin.site.register(Profile)
admin.site.register(Colaborador)

register((的第二个参数是ModelAdmin。

我不确定这是否足够。将导入和文件路径添加到问题中。

注册模型的工作方式不同。不在同一行admin.site.register(配置文件,订阅(

from django.contrib import admin
from .models import Profile, Subscription
admin.site.register(Profile)
admin.site.register(Subscription)

最新更新