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]
Это потому, что в вашей модели 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
в список полей