Я хочу добавить страну и города в формах, в настоящее время я использую django-страны для страны, но я получаю эту ошибку:
django.core.exceptions.FieldError: Unknown field(s) (country) specified for CustomUser
forms.py:
from django import forms
from django.contrib.auth.forms import UserCreationForm
from bootstrap_datepicker_plus import DatePickerInput
from tempus_dominus.widgets import DatePicker
from .models import CustomUser
from django_countries.fields import CountryField
class RegistrationForm(UserCreationForm):
CHOICES = (
(0, 'celebrities'),
(1, 'singer'),
(2, 'comedian'),
(3, 'dancer'),
(4, 'model'),
(5, 'Photographer')
)
Mobile_Number = forms.CharField(label='Mobile Number', widget= forms.NumberInput)
Artist_Category = forms.ChoiceField(choices=CHOICES)
bio = forms.CharField(widget=forms.Textarea,label = 'something about yourself')
portfolio = forms.URLField(label = 'enter your portfolio')
country = CountryField(blank_label = '(select_country)')
# country = forms.co
class Meta:
model = CustomUser
fields = ('email','password','Mobile_Number','Artist_Category','portfolio','country','bio',)
models.py: обычай пользовательская модель
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=100, unique=True)
name = models.CharField(max_length=100)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
is_superuser = models.BooleanField(default=False)
last_login=models.DateTimeField(null=True, blank=True)
date_joined = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'email'
EMAIL_FIELD='email'
REQUIRED_FIELDS=[]
objects=UserManager()
def get_absolute_url(self):
return "/users/%i/" % (self.pk)
view.py:
from django.shortcuts import render, redirect
from main_site.models import artist
from django.urls import reverse_lazy
from .forms import BookartistForm, ContactForm
from django.core.mail import send_mail
from django.template.loader import render_to_string
from django.utils.html import strip_tags
from django.core.mail import EmailMultiAlternatives,EmailMessage
from django.template import loader
from .forms import RegistrationForm
from django.contrib.auth import login, authenticate
from django.http import HttpResponseRedirect
представление регистра
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
user= form.save()
raw_password = form.cleaned_data.get('password1')
# user = authenticate(request, email=user.email, password=raw_password)
# if user is not None:
# login(request, user)
# else:
# print('user is not authenticated')
return redirect('login')
else:
form = RegistrationForm()
return render(request, 'main_site/register.html', {'form':form})
...........................................................................................................................