python - AttributeError: 'ContactUs' 对象没有属性 'model'

标签 python django attributeerror

任何人都可以帮助我吗,我尝试在 python-django 上创建联系表单,当我尝试在数据库上进行迁移时,我收到错误“AttributeError:'ContactUs'对象没有属性'model'”

views.py

from django.shortcuts import render
from .forms import ContactForm, ContactUs
from django.core.mail import EmailMessage
from django.shortcuts import redirect
from django.template.loader import get_template


def contact(request):
    form_class = ContactForm

    # new logic!
    if request.method == 'POST':
        form = form_class(data=request.POST)

        if form.is_valid():
            first_name = request.POST.get('first_name', '')
            last_name = request.POST.get('last_name', '')
            date = request.POST.get('date', '')
            month = request.POST.get('month', '')
            year = request.POST.get('year', '')
            sender = request.POST.get('sender', '')
            message = request.POST.get('message', '')
            licence = request.POST.get('licence', '')
            phoneNumber = request.POST.get('phoneNumber', '')
            zipCode = request.POST.get('zipCode', '')
            cdlType = request.POST.get('cdlType', '')

            # Email the profile with the
            # contact information
            template = get_template('contact_template.txt')
            context = {
                'first_name': first_name,
                'last_name': last_name,
                'date': date,
                'month': month,
                'year': year,
                'sender': sender,
                'message': message,
                'licence': licence,
                'phoneNumber': phoneNumber,
                'zipCode': zipCode,
                'cdlType': cdlType,
            }

            content = template.render(context)

            email = EmailMessage(
            "New contact form submission",
            content,
            "Your website" + '',
            ['youremail@gmail.com'],
            headers={'Reply-To': sender}
            )
            email.send()
            return redirect('contact')

    return render(request, 'email.html', {
        'form': form_class,
    })


def contact_us(request):
    form_class = ContactUs

    # new logic!
    if request.method == 'POST':
        form = form_class(data=request.POST)

        if form.is_valid():
            first_name = request.POST.get('first_name', '')
            last_name = request.POST.get('last_name', '')
            sender = request.POST.get('sender', '')
            message = request.POST.get('message', '')
            phoneNumber = request.POST.get('phoneNumber', '')

            # Email the profile with the
            # contact information
            template = get_template('contact_us_template.txt')
            context = {
                'first_name': first_name,
                'last_name': last_name,
                'sender': sender,
                'message': message,
                'phoneNumber': phoneNumber,
            }

            content = template.render(context)

            email = EmailMessage(
                "New contact form submission",
                content,
                "Your website" + '',
                ['youremail@gmail.com'],
                headers={'Reply-To': sender}
            )
            email.send()
            return redirect('contact_us')

    return render(request, 'email2.html', {
        'form': form_class,
    })

模型.py

from django.db import models


class Form(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    date = models.DateTimeField()
    month = models.DateTimeField()
    year = models.DateTimeField()
    sender = models.EmailField()
    message = models.CharField()
    licence = models.CharField(max_length=100)
    zipCode = models.CharField(max_length=100)
    phoneNumber = models.CharField(max_length=100)
    cdlType = models.CharField(max_length=100)


class ContactUs(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    sender = models.EmailField()
    message = models.CharField()
    phoneNumber = models.CharField(max_length=100)

表单.py

from django import forms


class ContactForm(forms.Form):
    first_name = forms.CharField(max_length=100, required=True)
    last_name = forms.CharField(max_length=100, required=True)
    date = forms.DateTimeField(required=True)
    month = forms.DateTimeField(required=True)
    year = forms.DateTimeField(required=True)
    sender = forms.EmailField(required=True)
    message = forms.CharField(required=True)
    licence = forms.CharField(max_length=100, required=True)
    zipCode = forms.CharField(max_length=100, required=True)
    phoneNumber = forms.CharField(max_length=100, required=True)
    cdlType = forms.CharField(max_length=100, required=True)


class ContactUs(forms.Form):
    first_name = forms.CharField(max_length=100, required=True)
    last_name = forms.CharField(max_length=100, required=True)
    sender = forms.EmailField(required=True)
    message = forms.CharField(required=True)
    phoneNumber = forms.CharField(max_length=100, required=True)

回溯

C:\Contact_Form\back>python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Contact_Form\testenv\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "C:\Contact_Form\testenv\lib\site-packages\django\core\management\__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Contact_Form\testenv\lib\site-packages\django\core\management\base.py", line 316, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Contact_Form\testenv\lib\site-packages\django\core\management\base.py", line 350, in execute
    self.check()
  File "C:\Contact_Form\testenv\lib\site-packages\django\core\management\base.py", line 379, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Contact_Form\testenv\lib\site-packages\django\core\management\base.py", line 366, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Contact_Form\testenv\lib\site-packages\django\core\checks\registry.py", line 71, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Contact_Form\testenv\lib\site-packages\django\contrib\admin\checks.py", line 26, in check_admin_app
    errors.extend(site.check(app_configs))
  File "C:\Contact_Form\testenv\lib\site-packages\django\contrib\admin\sites.py", line 81, in check
    if modeladmin.model._meta.app_config in app_configs:
AttributeError: 'ContactUs' object has no attribute 'model'

admin.py

from django.contrib import admin

from .models import Form, ContactUs


admin.site.register(Form, ContactUs)

一开始我制作的联系表单只是为了发送邮件,但后来我修改了它,因为我需要在网站管理中显示数据。

最佳答案

from django.contrib import admin
from .models import Form, ContactUs
admin.site.register(Form, ContactUs)

将您的管理文件更改为此

from django.contrib import admin

from .models import Form, ContactUs

admin.site.register(Form)
admin.site.register(ContactUs)

关于python - AttributeError: 'ContactUs' 对象没有属性 'model',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53704464/

相关文章:

python - Django-Filter 返回请求对象

python - AttributeError: 'DataFrame' 对象没有属性

python - tensorflow rnn : name 'seq2seq' is not defined

django - 'QueryDict' 对象没有属性

python - 尝试从 Django ADMIN 中的外部用户模型调用 is_active 方法

python - 是否应 checkin Pylons 的 development.ini?

python - 解码 Django session cookie 值

python - Django表单不会显示错误

python - LDA Gensim Word -> 主题 ID 分布而不是主题 -> 单词分布

Python Mechanize Browser.links() - 奇怪的行为