在用户发送的Django管理页面中显示数据

时间:2015-12-14 13:38:51

标签: python django python-3.x django-forms django-admin

问题:如何在Django管理页面中显示哪些用户通过网页上的表单\字段发送数据?!

P.S。我只是Django的初学者,所以我认为我的问题很容易解决,但现在我不知道怎么做。请不要严厉地评价我。我会很高兴任何关于它的例子或文章。 =)

forms.py

class TicketForms(forms.Form):
    name = forms.CharField(max_length=120, required=True)
    email = forms.EmailField(required=False)
    department = forms.CharField(max_length=120, required=True)
    room = forms.CharField(max_length=100, required=True)
    comment = forms.CharField(required=True, widget=forms.Textarea)

models.py

from django.db import models

class Ticket(models.Model):
    name = models.TextField(null=True, blank=True)
    email = models.TextField(null=True, blank=True)
    department = models.TextField(null=True, blank=True)
    room = models.TextField(null=True, blank=True)  # TextField cause room can be 408A as example
    comment = models.TextField(null=True, blank=True)

    def __str__(self):  # __unicode__ on Python 2.7
        return self.name

admin.py

from django.contrib import admin
from .models import Ticket


# Register your models here.
class Admin(admin.ModelAdmin):
    class Meta:
        model = Ticket


admin.site.register(Ticket, Admin)

1 个答案:

答案 0 :(得分:1)

由于您有空管理页面,这意味着您尚未在管理界面中注册您的模型。只需转到与 models.py 相同的目录中的应用程序,您应该找到 admin.py ,如果不是,只需创建它并添加以下内容:

1。 的 admin.py

from django.contrib import admin
from ticket.models import Ticket

admin.site.register(Ticket)

2.然后将您的应用添加到 settings.py

    INSTALLED_APPS = (
        ...
        'tickets',
    )

3.apply migration

  python manage.py makemigrations
  python manage.py migrate
  1. 现在您已在 views.py

    中准备好模型
    def home(request):
        form = TicketForms(request.POST)
        # validate your form
        if form.is_valid():
           Ticket.objects.create(**form.cleaned_data)
           # return success url
        else:
           context = {'form': form}
           render(request, 'ticket.html', context)
    
  2. 再次检查您的管理员,您会发现显示已保存的数据。

    由于您是Django的新手,我建议您通过7个部分查看此官方django tutoriel