繁体   English   中英

如何在保存表单之前从 Django 视图更新特定的 Model 字段

[英]How To Update Specific Model Field From Django View Before Saving A Form

那么,如何自动更新一些 Model 字段,而无需用户输入值? 在模型中:

class Url(models.Model):
    long_url = models.CharField("Long Url",max_length=600)
    short_url = models.CharField("Short Url",max_length=7)
    visits = models.IntegerField("Site Visits",null=True)
    creator = models.ForeignKey(CurtItUser,on_delete=models.CASCADE,null=True)
    def __str__(self):
        return self.short_url

在视图中:

def home(request):
    """Main Page, Random Code Gen, Appendage Of New Data To The DB"""
    global res,final_url
    if request.method == 'POST':
        form = UrlForm(request.POST)
        if form.is_valid():
            res = "".join(random.choices(string.ascii_uppercase,k=7))
            final_url = f"127.0.0.1:8000/link/{res}"
            form.save()
            redirect(...)
    else:
        form = UrlForm
    return render(...)

播种如何从我的角度将 short_url 的值设置为 final_url???

您可以从表单中获取所需的数据。 您需要首先获取特定实例,然后您可以使用该实例来保存表单中的值。 并且不要忘记保存!

url_instance = get_object_or_404(Url, pk=pk)
url_instance.short_url = form.cleaned_data['short_url']
url_instance.long_url = form.cleaned_data['long_url']
url_instance.visits = form.cleaned_data['visits']
url_instance.save()

您可以在 Django文档中找到更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM