繁体   English   中英

Django - 如何在views.py中访问实例的值

[英]Django - How access the value of an instance in views.py

我有这个 model

class Post(models.Model):
    title = models.CharField(max_length=100)
    title2 = models.CharField( max_length=100)
    content = models.TextField(default=timezone.now)
    content2 = models.TextField(default=timezone.now)
    post_image = models.ImageField(upload_to='post_pics')
    post_image2 = models.ImageField(upload_to='post2_pics')
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

然后我有这个简单的视图 function,它允许我访问 HTML 中的每个字段:

def home(request):


    postings = {
        'listings' : Post.objects.all(),
        
    }
    return render(request, 'front/front.html',  postings)
{% for listings in listings%}
  <h1>{{listings.content}}</h1>
{% endfor %}

有了这个,我可以访问该 model 的每个实例的content字段并显示它

我的问题是如何访问我的视图 function 中的content字段并进行更改。 content字段包含一个邮政编码,我想使用 API 来显示该邮政编码的城市(我已经知道该怎么做)并将其传递回h1标签。 每个实例都有一个唯一的邮政编码,所以我需要它来申请每个实例。 我将如何处理这个?

最简单的方法是创建另一个变量(来自视图),它为相应的邮政编码找到城市,并将其通过上下文字典发送到模板。 添加 model 城市设置默认值和 Null 及更高版本基于输入的密码,您可以将值设置为 model 的城市属性。

如果您想将 CONTENT 的值编辑为城市名称...那么,

最好的方法是覆盖保存方法并在那里设置值,

模型.py:

class Post(models.Model):
    ...
    def save(self, *args, **kwargs):
       self.content = API_VALUE_OF_city_name
       super(Post, self).save(*args, **kwargs)

如果你想从视图中更新它,

在views.py中:

instance_update = Post.objects.filter(id = <pk of Post>).update(content = NEWLY FOUND CITY NAME)

暂无
暂无

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

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