該頁面應顯示在管理面板中創建的反饋表和鏈接。創建的模型:
from django.db import models
class ContactModel(models.Model):
# feedback form
name = models.CharField(max_length=50)
email = models.EmailField()
website = models.URLField()
message = models.TextField(max_length=5000)
create_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.name} - {self.email}'
class ContactLink(models.Model):
# links
icon = models.FileField(upload_to='icons/')
name = models.CharField(max_length=200)
def __str__(self):
return self.name
我將模型連接到管理面板:
from django.contrib import admin
from .models import ContactModel, ContactLink
@admin.register(ContactModel)
class ContactModelAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'email', 'create_at']
list_display_links = ('name',)
admin.site.register(ContactLink)
一切正常,您可以在管理面板中創建鏈接。
下面views.py:
from django.shortcuts import render
from django.views import View
from .models import ContactLink
class ContactView(View):
def get(self, request):
contacts = ContactLink.objects.all()
form = ContactForm()
return render(request, 'contact/contact.html', {'contact': contacts, 'form': form})
urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('contact/', views.ContactView.as_view(), name='contact'),
path('feedback/', views.CreateContact.as_view(), name='feedback'),
]
我遍歷for代碼以從管理面板回傳鏈接:
#links
<div class="contact__widget">
<ul>
{% for contact in contacts %}
<li>
<img src="{{ contact.icon.url }}">
<span>{{ contact.name }}</span>
</li>
{% endfor %}
</ul>
</div>
#feedback form
<form action="{% url 'feedback' %}" method="post">
{{ form }}
<button type="submit" class="site-btn">Submit</button>
</form>
反饋表單作業正常,但頁面上根本不顯示鏈接...錯誤在哪里? 截屏
uj5u.com熱心網友回復:
視圖必須參考正確的變數名。contact與輸入s一起使用:
return render(request, 'contact/contact.html', {'contacts': contacts, 'form': form})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337572.html
標籤:蟒蛇-3.x 姜戈 django-models django-views
