Простой квест в просмотре и настройках
Ну, я работаю над этой проблемой около 2 недель. Много искал в google, экспериментировал с вариантами. Но это просто не работает -_-. Я даже не могу определить, в чем проблема, возможно, в представлениях или настройках join. Просто посмотрите.
У меня было много ошибок, в данный момент я вижу: No module named 'path', , line 1004, in _find_and_load_unlocked
Я знаю, что эта проблема проста, но я устал бороться :D
Настройки
from pathlib import Path
import os
BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'path.to.inject_form',
],
},
},
]
урлы
urlpatterns = [
path('form/', views.SignUpp, name="SignUpp"),
path("",views.head.as_view(), name="mainpage"),
path("stocks/", views.stockpage.as_view(), name="stockpage"),
path("search/", SearchResultStocks.as_view(), name="search-Stocks"),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
Виды
def SignUpp(request):
if request.method == 'POST':
form = UserSign(request.POST)
if form.is_valid():
body = {
'Name': form.cleaned_data['Name'],
'email': form.cleaned_data['email'],
'Number': form.cleaned_data['Number'],
}
info_user = "\n".join(body.values())
send_mail(
'Sign',
info_user,
'eric1122221@mail.ru',
['eric1122221@mail.ru'],
fail_silently=False)
form.save()
return redirect("dental/mainpage.html")
else:
form= UserSign()
context = {
'form': form
}
return render(request, 'base.html', context)
class head(ListView):
template_name = "dental/mainpage.html"
model = signup
class stockpage(ListView):
template_name = "dental/stocks.html"
model = stock
context_object_name = "stocks"
class SearchResultStocks(ListView):
model = stock
template_name = "search-Stocks"
модели + формы
class signup(models.Model):
Name = models.CharField(max_length=100)
email = models.EmailField(blank=True)
Number = models.CharField(max_length=100)
class stock(models.Model):
title = models.CharField(max_length=150)
content = models.TextField()
image = models.ImageField(upload_to="uploads")
class Meta:
verbose_name_plural = "stocks" #попробовать изменить
def __str__(self):
return self.title
class UserSign(forms.ModelForm):
class Meta:
model = signup
fields = ("__all__")
labels = {
"Name": "Ваше Имя",
"email": "Ваша почта",
"Number": "Ваш телефон"
}
widgets = {
'Name': forms.TextInput(attrs={'class': 'form-contol','PlaceHolder': "Имя"}),
'email': forms.TextInput(attrs={'class': 'form-contol','PlaceHolder': "Почта"}),
'Number': forms.TextInput(attrs={'class': 'form-contol','PlaceHolder': "Номер"}),
}
error_messages = {
"Number": {
"required": "Пожалуйста, напишите номер телефона"
}
}
context_processors
from .forms import UserSign
def inject_form(request):
return {'form': UserSign()}
html base
главная страница
{% extends 'base.html' %}
{% load static %}
{%block css_files %}
<link rel="stylesheet" href="{% static "mainpage.css" %}">
{% endblock %}
{% block title %}{% endblock %}
{% block content %}
<div ="d1">
<ul>
<li>У нас самые низкие Цены</li>
<li>У нас самые лучшие врачи</li>
<li>Итальянское оборудование</li>
<li>Пожизненная гарантия</li>
</ul>
</div>
{% endblock content %}
импортируйте следующим образом и попробуйте:
from os import path