如何创建类似于管理站点的django网页

时间:2017-07-30 20:38:24

标签: python django django-models

我是django的初学者,我想创建一个新的网页,我可以编辑并添加到数据库模型,如管理网站页面,但这将在网站上,以使用户能够控制它,我可以扩展我的 base.html 页面,我搜索它,我没有找到一个简单的解决方案,如管理员基础网站,使我能够控制模型,我试图发送此模型的所有对象在上下文中但我无法在数据库模型中添加或编辑它,只是我只能查看它。

任何人都可以帮助我吗?感谢。

这是我对此网页的 models.py

from django.db import models

class Email(models.Model):
    type = models.CharField(max_length=200, null=True, blank=True)
    subject = models.TextField()
    from_email = models.CharField(max_length=200, null=True, blank=True)
    to_email = models.CharField(max_length=200, null=True, blank=True)
    reply_to_email = models.CharField(max_length=200, null=True, blank=True)
    body_text = models.TextField()
    body_html = models.TextField()
    status= models.CharField(max_length=200, null=True, blank=True,default='waiting')  

    def __unicode__(self):
        return self.to_email

class EmailTemplate(models.Model):
    template_name=models.CharField(max_length=200)
    subject = models.CharField(max_length=200)
    from_email = models.CharField(max_length=200, null=True, blank=True)
    reply_to_email = models.CharField(max_length=200, null=True, blank=True)
    body_text = models.TextField()
    body_html = models.TextField()

    def __unicode__(self):
        return self.template_name

我的 views.py

from django.http import HttpResponse
from django.shortcuts import  render_to_response
from django.template import RequestContext
from survey.models import *
from user_management.models import Candidate
from django.contrib.auth.decorators import login_required
from django import forms
import settings

from emailtemplates import models
from email_sender.models import *

from report.pdf import DrawarmPDF,send_pdf_in_email

from decorators import superuser_required



@login_required
@superuser_required()
def home(request):

  query_results = EmailTemplate.objects.all()
  return render_to_response('emailtemplates/emailtemplates.html', 
                              {"query_results":query_results},
                              context_instance=RequestContext(request))

1 个答案:

答案 0 :(得分:1)

您需要为POST方法添加操作:

def home(request):

    if request.method == 'POST':
    #            ^^^^^^
    #    do save action code

    query_results = EmailTemplate.objects.all()
    return render_to_response('emailtemplates/emailtemplates.html', 
                              {"query_results":query_results},
                              context_instance=RequestContext(request))

您可以在此处使用表单进行保存操作,更多详细信息:forms view

关于表单类视图class-based-views

,请阅读它