【问题标题】:Uploading to a Django DataBase from a template从模板上传到 Django 数据库
【发布时间】:2013-07-26 21:54:09
【问题描述】:

我正在尝试创建一个网页,您可以在其中将问题上传到Questions 数据库。我想知道在 Django 中是否有任何简单的方法可以做到这一点?我可以上传它以便可以从 Django 管理员访问它吗?这是我所拥有的。

#Models
class Question(models.Model):
question = models.CharField(max_length=400)
answer = models.CharField(max_length=400)
def __unicode__(self):
    return self.question + "?"

class QuestionForm(ModelForm):
    class Meta:
        model = Question
        fields = ['question', 'answer']

#Question Template
<div class="container" align="center">
  <div class="hero-unit3" align="center">
      <h3>
        Feel free to post some questions, and a DarKnight representative will answer them for you.
      </h3>
    </div>
  </div>
</div>
<div class="row">
  <div class="span6">
    <h4>
      <form action="<!-- NO IDEA WHAT TO DO -->" method="post">
        <input type="text" name="question" />
  </div>
</div>
</div>

#views.py
class question(generic.ListView):
    template_name = 'users/question.html'
    context_object_name = 'Question_list'
    def get_queryset(self):
        return Question.objects.order_by('question')

【问题讨论】:

  • @HieuNguyen 添加了我的观点

标签: html django forms twitter-bootstrap


【解决方案1】:

实现所需的最简单方法是使用CreateView

在views.py中:

from django.views.generic.edit import CreateView
from yourapp.models import Question

class QuestionCreate(CreateView):
    model = Question
    fields = ['question', 'answer']

新建模板名称question_form.html:

<form action="" method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Create" />
</form>

希望对你有帮助!

【讨论】:

  • 谢谢!完全按照我的需要提供帮助。
【解决方案2】:

要让 django 管理员可以使用模型,您必须通过以下方式将模型注册到管理员

from django.contrib import admin

class Question(models.Model):
...

admin.site.register(Question)

还可以使用自定义模板执行此操作model form

表单可以在模板中显示为表格或段落。

假设你将表单渲染到模板中为f,在模板中使用如下

<form action='..' method='post'>
{{ f.as_t }} //or f.as_p for paragraph
</form>

【讨论】:

  • 这帮了大忙。我已经知道如何在管理员中使用它。但是有没有一种简单的方法可以使我可以将输入的任何内容发布到数据库中?另外,有没有更简单的方法来创建 model form 并将其导入我的问题模板?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
  • 2020-03-19
  • 2019-02-16
  • 2012-07-24
  • 2011-01-28
相关资源
最近更新 更多