2017-02-07 96 views
-1

我正在學習django大約一個月,並且我正在嘗試爲博客應用上的帖子應用激活/停用功能。這是我的模型。我的願望是能夠激活帖子以在模板中顯示它,但是如何通過view.py更改(設置)is_activate字段的值?這裏是我做了我的模型:如何修改Django中的布爾型字段模型?

class Post(models.Model): 
    title = models.CharField(max_length=250) 
    slug = models.SlugField(max_length=250) 
    body = models.TextField() 
    is_activate = models.BooleanField(default=False) 

彙總:我需要點擊一個BUTTOM並激活後,然後顯示它在模板與另一激活帖子

+0

你有什麼能夠做的另一種方法寫,在你的意見? –

+0

這裏有什麼複雜的?爲什麼更改'is_activate'字段與更改任何其他字段不同? –

+0

@EvansMurithi因爲我需要在模板中使用buttom而不是通過管理員 –

回答

1

您可以通過主鍵訪問後

post = Post.objects.get(id=id) 
post.is_activate = True 
post.save() 

這段代碼你is_activate標誌爲這個職位

+0

你的意思是創建一個新的視圖函數來設置變量,或者我需要在我檢索每個單獨的帖子的相同函數中執行此操作? –

+1

在相同的功能 –

0

試試這個設置: 這是您的model.py

class Post(models.Model): 
    title = models.CharField(max_length=250) 
    slug = models.SlugField(max_length=250) 
    body = models.TextField() 
    is_activate = models.BooleanField(default=False) 

view.py

from foldername import Post //if there are subfolders use'.' between them. 
//import the other packages which u need 
form=form_name //your form name 
template=template_name //your template name 
def post(self, request, *args, **kwargs): 
     try: 
      form = self.form_class(request.POST) 
      if form.is_valid(): 
      new_formfile = form.save(commit=False) 
      new_formfile.is_activate = true 
      new_formfile.save() 
     except Exception as e: 
      return render(request, 'exception.html', {'exception': str(e), 'message': e.message}) 

OR

//在try塊

id = request.GET.get('id') 
id_instance = Post.objects.get(pk = id) 
form = self.form_class(request.POST, instance = id_instance) 
if form.is_valid(): 
new_formfile = form.save(commit=False) 
new_formfile.is_activate = true 
new_formfile.save() 
form.save() 
相關問題