class ListLinkView(ListView):
model = FooterLink
template_name = 'footer.html'
def get_context_data(self, **kwargs):
kwargs['another_object_list'] = AnotherModel.objects.all()
kwargs['some_object_list'] = Some.objects.filter(some_variable__gt=5)
return super().get_context_data(**kwargs)
class Login(TemplateView):
template_name = 'core/home.html'
def post(self, request, *args, **kwargs):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is None:
try:
possible_user = Person.objects.get(phone=username)
user = auth.authenticate(username=possible_user.user.username, password=password)
except Person.DoesNotExist:
user = None
if user is not None:
if user.is_active:
auth.login(request, user)
return redirect(request.GET.get('next') or request.META.get('HTTP_REFERER') or reverse('home'))
else:
messages.add_message(request, messages.ERROR, 'Пользователь не активен')
else:
messages.add_message(request, messages.ERROR, 'Пользователь не найден')
return redirect(reverse('home'))
class CinemaForm(forms.ModelForm):
class Meta:
model = Cinema
fields = ('theater_name', 'theater_address', 'cinema_timetable', 'cinema_name')
password=password
image = models.ImageField()
image = ProcessedImageField(upload_to='your/path',
processors=[ResizeToFit(800, 600)],
format='JPEG', options={'quality': 70})
url(r'^links$', login_required(views.LinkListView.as_view(), login_url=reverse_lazy('your_login_url')), name='links')
def get_queryset(self):
return super().get_queryset().filter(post=self.kwargs.get('post_pk'))
$(document).ready(function() {
$('img').addClass('img-responisve');
});
user = form.save(commit=False) # Получаем обновлённую модель юзера из формы.
user.term += 1
user.save()
from django.views.generic import *
class YourFormView(FormView):
form_class = UserProfile
template_name = 'path/to/your_template.html'
def form_valid(self, form): # Вызывается, если форма is_valid
user = form.save(commit=False)
user.term += 1
user.save()
return # Чего вы хотите вернуть (обычно это редирект)
def form_invalid(self, form):
# Что-то делаем, если форма невалидна. По-умолчанию, джанго возвращает
# на ту же страницу и показывает ошибки в форме.
class YourModel(Model):
# ...
image = ImageField(upload_to='images/', null=True, blank=True)
def generate_path(instance, filename):
ext = filename.rsplit('.', 1)[-1]
h = md5(instance.user.username.encode()).hexdigest()
result = 'photos/%s/%s/%s.%s' % (h[:2], h[2:4], h[4:], ext)
path = os.path.join(settings.MEDIA_ROOT, result)
if os.path.exists(path):
os.remove(path)
return result
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
from django.contrib.sessions.models import Session
Session.objects.get(session_key=request.session.session_key).expire_date
from django.views.generic import ListView
class NewsList(ListView):
model = News
paginate_by = 5
News.objects.all()[:5]
class News(Model):
# Твоя модель новостей
@classmethod
def last_five(cls):
return cls.objects.all()[:5]
return render(request, 'template.html', {'News': News})
<div class="my-very-own-news">
{% for news in News.last_five %}
{{ news }}
{% endfor %}
</div>
{% for album in albums %}
<div class="album-{{ album.pk }}">
{% for image in album.image_set.all %}
<div class="image-{{ image.pk }}>
<img src="{{ image.image.url }}}" alt="Image was here"/>
</div>
{% endfor %}
</div>
{% endfor %}
url(r'^blog/$', 'module.views.blog', name='blog'),
<a href="{% url 'blog' %}">Go ahead</a>