簡體   English   中英

AttributeError:“ ContactUs”對象沒有屬性“ model”

[英]AttributeError: 'ContactUs' object has no attribute 'model'

任何機構都可以幫助我,我嘗試在python-django上創建聯系表單,當我嘗試在數據庫上進行遷移時,我收到錯誤“ AttributeError:'ContactUs'對象沒有屬性'model'”

vievs.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,
    })

models.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)

forms.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)

您可以將多個模型注冊為列表

admin.site.register([Form, ContactUs])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM