D'abord vos entrées de blog doivent être attachées à l'utilisateur, donc vous savez sur quel blog afficher, pas vrai? models.py:
class BlogEntry(models.Model):
user = models.ForeignKey(User, related_name='blog_entries')
other_field_1 = ...
other_field_2 = ...
Ensuite, sauter dans ModelForm, forms.py:
class BlogEntryModelForm(forms.ModelForm):
class Meta:
exclude = ('user',)
Ensuite, lorsque l'utilisateur veut entrée poster vous avez besoin, il est connecté, 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()
Lorsque vous voulez afficher un certain blog de l'utilisateur, views.py:
def view_blog(request, blogger_name):
user = get_object_or_404(User, username=blogger_name)
entries = user.blog_entries.all()
L'utilisateur est django.contrib.auth.models.User Vous pouvez ajouter un contrôle de rôle personnalisé aux vues ci-dessus pour afficher page 404 ou page d'erreur si l'utilisateur n'a aucun droit de créer un blog.
En option, vous pouvez remplacer l'utilisateur de django.contrib.auth avec votre propre implémentation de l'utilisateur, mais vous devrez écrire le modèle, l'authentification et middleware pour elle aussi ...
bien, vous avez demandé comment faire des vues, pas comment modifier le comportement par défaut admin Vues – rombarcz
Ouais, je vois que le savoir, désolé .. – espenhogbakk