Ich habe eine Anmeldeseite mit eingebautem UserCreationForm
von django erstellt.Verwenden des Fremdschlüssels des UserCreationForm-Modells Benutzer
signup.html
class UserCreationForm(UserCreationForm):
email = EmailField(label=_("Email address"), required=True, help_text=_("Required."))
class Meta:
model = User
fields = ("username", "email", "password1", "password2")
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.email = self.cleaned_data["email"]
if commit:
user.save()
return user
Aber ich brauche auch andere Tabellen in models.py
zu machen. Also wenn in einer anderen Tabelle category
Ich muss einen Fremdschlüssel des Primärschlüssels dieses eingebauten Benutzers UserCreationForm
machen. Was ist der primäre Schlüssel dabei?
models.py
class category(models.Model):
uid = models.ForeignKey(#)
cname = models.CharField(max_length=20)
def __unicode__(self):
return u"{} {}".format(self.uid, self.cname)
class Meta:
db_table = "category"
Was schreibe ich anstelle von # ??
Sie sollen den Unterschied zwischen einer Form und einem Modell lernen. Die Form beeinflusst das zugrunde liegende Modell in keiner Weise. Sie können mehrere verschiedene Formulare verwenden, um einen Benutzer zu erstellen, die alle dasselbe Modell verwenden. Ihr Benutzermodell ist immer noch nur ein Standard-Django-Benutzer. Daher sollte Ihr Fremdschlüssel auf das Modell "Benutzer" zeigen. Importieren Sie einfach 'User' und erstellen Sie einen Fremdschlüssel, oder besser, verwenden Sie' settings.AUTH_USER_MODEL', welches standardmäßig der Django 'User' ist, aber möglicherweise von Ihnen in Ihr benutzerdefiniertes Benutzermodell geändert wird. – dirkgroten
habe es Sir !!! danke. – Shefali