#django #portal
#django #Портал
Вопрос:
Я работаю над приложением для обмена книгами. Как я могу реализовать пользовательский портал, чтобы текущий зарегистрированный пользователь мог просматривать, изменять и удалять загруженные им книги.
Вот мой текущий рабочий процесс:
models.py
from django.db import models
from django.contrib.auth.models import User
CONDITION_CHOICES = (
('Fair', 'Fair'),
('Good', 'Good'),
('Excellent', 'Excellent'),
)
BIND_CHOICES = (
('LooseLeaf', 'Loose Leaf'),
('PaperBack', 'Paper Back'),
('HardCovered', 'Hard Covered'),
)
class Book(models.Model):
user_id = models.ForeignKey(User, null=True, blank=True)
title = models.CharField(max_length = 255)
author = models.CharField(max_length = 255)
course_designator = models.CharField(max_length = 3)
course_number = models.PositiveSmallIntegerField(max_length = 3)
condition = models.CharField(max_length = 20, choices = CONDITION_CHOICES)
bind_type = models.CharField(max_length = 20, choices = BIND_CHOICES)
notes = models.TextField(blank=True)
price = models.PositiveSmallIntegerField(max_length = 3)
posted = models.DateTimeField(auto_now_add=True)
approved = models.BooleanField(default=False)
def __unicode__(self):
return "%s %s : %s" % (self.course_designator, self.course_number, self.title)
def get_absolute_url(self):
return "/books/get/%i/" % self.id
admin.py
from django.contrib import admin
from ExchangeApp.models import Book
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'course_designator', 'course_number', 'condition', 'bind_type', 'price', 'approved')
def save_model(self, request, obj, form, change):
obj.user = request.user
obj.save()
def save_formset(self, request, form, formset, change):
if formset.model == Book:
instances = formset.save(commit=False)
for instance in instances:
instance.user = request.user
instance.save()
else:
formset.save()
admin.site.register(Book, BookAdmin)
views.py
def portal(request):
user = request.user
#NEED HELP HERE
return render(request, 'portal.html',{
})
Комментарии:
1.
user.book_set.all()
Выдает вам список всехBook
объектов, загруженных пользователем. Отправьте это в контексте, и у вас будет то, что вам нужно.2. Спасибо, именно то, что мне было нужно