создать пользователя в Django 2.1, который связан с существующей моделью - PullRequest
0 голосов
/ 08 октября 2018

В моем файле models.py есть следующий код ->

from django.db import models

class Blogger(models.Model):
    username = models.CharField(max_length=20)
    email = models.EmailField()
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=20)
    password = models.CharField(max_length=30, default='')

Я хочу связать модель Blogger с пользователем и создать пользователя после отправки формы.Вот файл forms.py ->

from django import forms
from blog.models import Blogger
class BloggerForm(models.ModelForm):
    class Meta:
        model = Blogger
        fields = ['username', 'email', 'first_name', 'last_name', 'password']

А вот файл views.py ->

class BlogView(FormView):
    template_name = 'blogform.html'
    form_class = BloggerForm
    success_url = 'blog/'

Как мне создать нового пользователя при отправке этой формы?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Есть несколько способов сделать это, но в основном 2 общих ответа:

  1. Бросить / скопировать пользовательскую модель Django и создать свою собственную (жесткую)
  2. Расширить пользователясоздать новую модель и связать ее с пользовательской моделью (просто)

Я обычно выбираю вариант № 2, потому что тогда вам не нужно перенастраивать систему аутентификации.Это хороший учебник о том, как это сделать: simpleisbetterthancomplex

0 голосов
/ 09 октября 2018

Все поля в блоггере уже существуют в модели пользователя, на самом деле эта модель Blogger вам вообще не нужна, просто используйте модель пользователя напрямую.

...