簡體   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