Сначала ваши записи в блоге должны быть прикреплены к пользователю, так что вы знаете, на чьем дисплее блога, верно? models.py:
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 собственной реализацией пользователя, но вам также придется написать модель, аутентификацию и промежуточное программное обеспечение для него ...