Сначала ваши записи в блоге должны быть прикреплены к пользователю, чтобы вы знали, чей блог отображается, верно? модели.ру:
class BlogEntry(models.Model):
user = models.ForeignKey(User, related_name='blog_entries')
other_field_1 = ...
other_field_2 = ...
Далее пропускаем его в ModelForm, forms.py:
class BlogEntryModelForm(forms.ModelForm):
class Meta:
exclude = ('user',)
Затем, когда пользователь хочет опубликовать запись, вам требуется, чтобы он вошел в систему, views.py:
@login_required
def post_blog_entry(request):
....
if request.method == 'POST':
form = BlogEntryModelForm(request.POST)
if form.is_valid():
new_entry = form.save(commit=False)
new_entry.user = request.user
new_entry.save()
Если вы хотите отобразить пользовательский блог, views.py:
def view_blog(request, blogger_name):
user = get_object_or_404(User, username=blogger_name)
entries = user.blog_entries.all()
Пользователь django.contrib.auth.models.User. Вы можете добавить пользовательскую проверку ролей в представления выше, чтобы отображать страницу 404 или страницу ошибки, если у пользователя нет прав на создание блога.
При желании вы можете заменить пользователя из django.contrib.auth своей собственной реализацией пользователя, но вам также придется написать для него модель, аутентификацию и промежуточное программное обеспечение...
person
rombarcz
schedule
18.12.2008