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

To show data in Django admin page which user send

问题:如何在 Django 管理页面中显示用户 forms\fields 从网页发送的数据?!

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)

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

1。 admin.py

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

admin.site.register(Ticket)

2.then 将您的应用添加到 settings.py:

    INSTALLED_APPS = (
        ...
        'tickets',
    )

3.apply 迁移

  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)
    

再次检查你的管理员,你会发现保存的数据显示。

由于您是 Django 的新手,我建议您通读这个官方 django tutoriel 7 部分。