gpt4 book ai didi

python - 更新数据库中的现有模型

转载 作者:行者123 更新时间:2023-12-01 06:25:09 26 4
gpt4 key购买 nike

大家好,我有一个问题,我想更新数据库中的特定模型,就像我希望用户那样 更改他们的电话号码和图片...等特定的不是所有型号,我无法在views.py中执行此操作,下面是我的代码,可以帮忙吗?

模型.py:

    # Create your models here.


PHONE_REGEX = '^[0-9]*$'


class Profile(AbstractUser):
phone_number = models.CharField(
max_length=14,
help_text='Optional',
blank=True,
validators=[
RegexValidator(
regex=PHONE_REGEX,
message=
'phone number must be only digit and from 10 to 14 digits only',
code='invalid-phone number'),
MinLengthValidator(10)
])
picture = models.ImageField(upload_to='upload/', blank=True, default=False)
email = models.EmailField(max_length=254,
unique=True,
help_text='Required, pls enter a valid Email')

表单.py:

 class Change_pic_form(forms.ModelForm):
class Meta:
model = Profile
fields = ('picture', )

View .py这是它的片段

@login_required
def Change_picture(request):
instance = Profile.objects.get(pk=request.user.pk)
form = Change_pic_form(request.POST or None, instance=instance)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return redirect('change_pic')
else:
form = Change_pic_form(instance=instance)
context = {
'picture': instance.picture,
'form': form,
'instance': instance,
}
return render(request, 'account/change_picture.html', context)

也许我没有说清楚,抱歉,我的网站工作正常,我已经登录,注册......等等,我的意思是我有用户个人资料页面,用户可以在其中查看他的信息,我想要用户是否想更新他的信息,如电话号码、图片...等

最佳答案

您必须先运行 makemigrations 命令

python manage.py makemigrations <app_name>

它将为模型中所有更新的字段创建迁移文件,您可以在该特定应用程序的迁移文件夹中看到它。

然后您必须迁移该特定的迁移文件...例如,您所需模型的迁移文件是 0002_auto_20170808_2327 然后运行以下命令

python manage.py migrate <app_name> 0002_auto_20170808_2327

关于python - 更新数据库中的现有模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com