Django модель с автоматическим приращением - PullRequest
0 голосов
/ 21 февраля 2020

Я проектирую Django Модель, как показано ниже:

`

class User(models.Model):
      id=models.AutoField(primary_key=True)
      username=models.CharField(max_length=25,verbose_name="username")
      name=models.CharField(max_length=20,default="noName",verbose_name="name")
      password=models.CharField(max_length=20,verbose_name="password")
      email=models.EmailField()
      userCode=models.CharField(default=" ",max_length=100,verbose_name="User Code")

      def __str__(self):
            return self.username

      class Meta:
            ordering = ['-username']`

Затем я создаю объект в view.py. Хотя идентификатор автоматически увеличивается, python хочет, чтобы я определил идентификатор. View.py показан ниже.

def register(request,id):
if request.method=='POST':
    form = RegisterForm(request.POST)
    if form.is_valid():
        username = form.cleaned_data['username']
        name=form.cleaned_data["name"]
        password = form.cleaned_data["password"]
        email=form.cleaned_data.get("email")
        newUser = User(1,username,name,password,email)
        newUser.save()
        return redirect('mainPage')
     else:
        form=RegisterForm()
context = {
        "form" : form,
        "id":id
}
return render(request,"SignupLogin.html",context)

Пользователь (1, имя пользователя, имя, пароль, адрес электронной почты) в этой строке, 1 - это номер идентификатора. Когда я его удаляю, выдается ошибка, связанная с отсутствием идентификатора переменной. Как я могу избавиться от 1?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Вам не нужно объявлять поле первичного ключа с автоинкрементом вручную - Django неявно добавляет поле id, если оно отсутствует.

Возможно, ваша проблема не установлена ​​в editable=False для вашего поля, созданного вручную.

0 голосов
/ 21 февраля 2020

Просто введите ваши параметры для model функции инициализации. Это может помочь:)

newUser = User(username=username, name=name, password=password, email=email)

, и если у вас есть nullable поля (null=True), вы должны описать это на модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...