Na samy początku. Słowo "buisness" (chyba!) nie istnieje w angielskim, ale jest za to "business".
Django dostarcza na gotowy mechanizm do tworzenia forumlarzy, więc nie ma sensu budowania ich samodzielnie w kodzie html. Dodatkowo wbudowany w Django system autoryzacji dostarcza nam gotowy formularz przystosowany do tworzenia nowego usera. Jednak w twoim przypadku konieczne będzie utworzenie nowego formularza, dziedziczącego z wspomnianego wcześniej formularza (ponieważ rozszerzyłeś model użytkownika o nowe pola).
Nie napisałeś której wersji Django używasz, więc to co przedstawię powinno działać w wersjach powyżej 2.0
Na początku tworzymy plik forms.py (tak powielam twój ewentualny błąd w pisowni, ale tobie polecam zmienić nazwę tego pola)
from django import forms
from django.contrib.auth.forms import UserCreationForm
from .models import User
class RegisterForm(UserCreationForm):
username = forms.CharField(
max_length=100,
label="Nazwa użytkownika",
widget=forms.TextInput(
attrs={
"class": "example-html-class",
"placeholder": "Nazwa użytkownika"
}
)
) # It's a example extend field. You can do it for all field .
class Meta:
model = User
fields = [
"username",
"password1",
"password2",
"buisness",
]
Teraz tworzymy widok.
from django.shortcuts import redirect
from .forms import RegisterForm
from django.views.generic import CreateView
from django.contrib.auth import login, authenticate
class Register(CreateView):
form_class = RegisterForm
template_name = "account/register.html"
def form_valid(self, form):
form.save()
user = authenticate(username=form.cleaned_data.get("username"),
password=form.cleaned_data.get("password1"))
login(self.request, user)
return redirect("/account/profile/")
I na końcu czas na templateke.
<form method="post" action=".">
{{ form.as_p }}
{% csrf_token %}
<input type="submit" value="Submit">
</form>
Jeżeli coś nie działa, to napisz. Nie testowałem tego. Ale powinno działać.
Pozdrawiam.