Ich arbeite mit meinem Freund an einer Django-Anwendung und wir bekommen ein Problem mit unserer Website.Renderansicht/Vorlage für 2 verschiedene Benutzer verfügbar
Um wieder aufnehmen:
Wir Admin-Benutzer haben, die zu jedem Teil von unserer Website zugreifen können. Unsere Anwendung verwaltet Verträge für verschiedene Unternehmen. Jede Firma kann auf ihre Homepage zugreifen und Interventionen, Punkteguthaben, ... konsultieren.
Jede Firma hat ein Benutzerkonto, um auf unserer Website zu verbinden.
nach dem Log-Prozess auf ihre Homepage zugreifen zu können, schrieb ich in den log application
:
def connexion(request):
error = False
if request.method == "POST":
form = ConnexionForm(request.POST)
if form.is_valid():
username = form.cleaned_data["username"]
password = form.cleaned_data["password"]
user = authenticate(username=username, password=password)
if user.username == 'Admin':
login(request, user)
return HttpResponseRedirect(reverse('accueil'))
elif user.username == 'Compagny1':
login(request, user)
return HttpResponseRedirect('http://localhost:8000/Compagny/1/')
elif user.username == 'Compagny2':
login(request, user)
return HttpResponseRedirect('http://localhost:8000/Compagny/2/')
else :
error = True
else:
form = ConnexionForm()
return render(request, 'connexion.html', locals())
Dann Compagny model
wie folgt aussieht:
class Compagny(models.Model):
Nom = models.CharField(null= False, max_length=70, verbose_name='Nom de Société')
...
...
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=" ")
Die URL, die auf die Homepage
gehen lassen ist :
url(r'^Compagny/(?P<id>\d+)/$', views.Homepage, name="Homepage"),
Endlich, aus meiner Sicht habe ich:
@login_required
def Homepage(request, id) :
compagny = get_object_or_404(Compagny, pk=id, user=request.user)
...
# form part
return HttpResponseRedirect('http://localhost:8000/Compagny/'+id)
...
return render(request, 'Homepage.html', context)
Ich habe 2 Fragen zu meinem Prozess:
- Wie ich zwei
user_id
für ein compagny einstellen (Admin
undcompagny_user
)? - Es gibt einen anderen Weg, der
redirect compagny_user
auf jeder compagny Homepage besser als mein Skript Teil könnte?
Ich denke, Ihr Freund [fragte diese Frage früher] (https://Stackoverflow.com/q/45006792/1324033), die Antwort auf diese Frage ist, welche Probleme haben Sie mit der Verwendung der Benutzer-ID? Wie kann man 2 IDs setzen würde zu breit sein, sollte man sich 1 Frage pro Frage stellen – Sayse
Ach ich wusste es nicht ... Ich habe einer Compagny eine 'user_id' dank @Alasdair in meiner vorherigen Frage zugewiesen. Aber wenn ich die 'homepage compagny' definiere, die von' user_id compagny' zugänglich ist, kann ich diese Seite nicht als Admin Benutzer erreichen. Wie kann ich Admin-Berechtigungen definieren, um auf jede Homepage zuzugreifen:/ – Andro