нулевое значение в столбце & ldquo; user_id & rdquo; нарушает ненулевое ограничение формы Джанго

s = r'abc123d, hello 3.1415926, this is my book'
print re.findall(r'-?[0-9]+(?:\.[0-9]*)?|-?\.[0-9]+',s)

Вам не нужно escape дважды, когда вы используете raw mode.

Выход: ['123', '3.1415926']

Также тип возврата будет списком strings .Если вы хотите, чтобы возвращаемый тип, как integers и floats, использовал map

import re,ast
s = r'abc123d, hello 3.1415926, this is my book'
print map(ast.literal_eval,re.findall(r'-?[0-9]+(?:\.[0-9]*)?|-?\.[0-9]+',s))

Выход: [123, 3.1415926]

0
задан Dominic M. 16 January 2019 в 03:01
поделиться

1 ответ

Это потому, что в вашей модели Profile вы добавляете столбец user в качестве ForeignKey, который приводит к NOT NULL, так что выдает ошибку. Чтобы решить эту проблему, вам нужно изменить метод add_image примерно так:

@login_required
def add_image(request):
     form = ProfileImageForm()
     #form.user = request.user
     if request.method == "POST":
         form = ProfileImageForm(data=request.POST, files=request.FILES)
     if form.is_valid():
         form = form.save(commit=False) # change is here
         form.user=request.user.pk # change is here
         form.save()
         return redirect('userPage')
     else:
         return render(request, "users/user_image_form.html", {"form": form

Значение request.user.pk получить, если вы вошли в систему. Но если вы вошли в систему, вам нужно указать form.user = your_specified_id, какой идентификатор существует в таблице User. Если ваш случай таков, вы являетесь администратором, и вам нужно добавить изображение другим пользователям, так что вам нужно передать идентификатор пользователя в вашем методе add_image.

Добавить в ProfileImageForm.py добавить user в список полей

0
ответ дан shafik 16 January 2019 в 03:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: