2017-02-04 4 views
0

ich ein Kontaktformular/Modell in Django haben, die nicht auf dem Server-Betreiber Management Seite zeigt nach oben. Ich habe keine Ahnung, warum es nicht angezeigt wird, ich habe versucht, durch Ausführen von Migrationen zu debuggen, und auch einige der Modellvariablen umbenennen.Django Form zeigt sich nicht auf Admin-Seite

models.py

from django.db import models 

class Contact(models.Model): 
    their_name = models.CharField(max_length=100) 
    email = models.EmailField(max_length=100) 
    message = models.CharField(max_length=500) 
    def __str__(self): 
     return self.name 

forms.py

from django import forms 

class ContactForm(forms.Form): 

    their_name = forms.CharField(label='Name', max_length=100) 
    email = forms.EmailField(label='Email', max_length=100) 
    message = forms.CharField(label='Message', max_length=500, widget=forms.Textarea(attrs = {'id': 'Message_form'})) 

admin.py

from django.contrib import admin 
from .models import Contact 
admin.register(Contact) 

views.py

from django.shortcuts import render 
from django.http import HttpResponse, HttpResponseRedirect 
from django.shortcuts import render_to_response 
from django.template import RequestContext 
from .models import Contact 
from .forms import ContactForm 
... 

def contact(request): 

    valid_input = 'no input' 
    if request.method == 'POST': 
     valid_input = 'invalid input' 
     TheForm = ContactForm(request.POST) 
     if TheForm.is_valid(): 
      valid_input = 'valid input' 
      name = TheForm['name'] 
      email = TheForm['email'] 
      message = TheForm['message'] 
      Contact.objects.create(name=name, email=email, message=message) 
    else: 
     TheForm = ContactForm() 
    return render(request, 'BlogHome/pages/contact.html', {'TheForm': TheForm, 'valid_input': valid_input}) 

Könnte dies der richtige Weg sein ich das Modell am Import? Ich habe keine Ahnung, was dieses Problem verursacht.

+1

Was haben das Formular und die Ansicht mit der Admin-Seite zu tun? –

+0

Das Modell, mit dem das Formular verknüpft ist, wird nicht angezeigt. –

+1

Im Admin? Nun, hast du die App in INSTALLED_APPS aufgenommen? Dies hat aber wiederum nichts mit der Ansicht und der Form zu tun, die im Admin nicht verwendet werden. –

Antwort

1

In Ihrer admin.py erstellen Sie eine Admin-Klasse für Ihr Kontaktmodell und nach der Registrierung dieses Modells in Admin mit dieser Klasse.

class ContactAdmin(admin.ModelAdmin): 
    list_display = ('id', 'their_name', 'email', 'message') 

admin.site.register(Contact, ContactAdmin)