Sicherlich nicht eine neue Frage denke ich, aber hier geht es:einschränken Seitenansicht Zugriff auf bestimmte Benutzer/Kunden
In meinem Django basierte Bestellsystem jeden Benutzer (wer nicht Personal) zu einem CustomerProfile Objekt bezieht, die vergleicht diesen Benutzer mit dem richtigen Kundenobjekt. Diese Kundenbenutzer können sich anmelden und offene Rechnungen anzeigen. Um zu sehen, Rechnungen eines Kunden navigieren Sie zu so etwas wie dieses:
/Rechnungen/Kunde/97/
(Customer Invoice # 97)
was in Ordnung ist, aber ich brauche etwas Authentifizierung so einen Benutzer zu übernehmen Wer Teil eines Kundenprofils ist, kann die Rechnungen eines anderen Kunden nicht anzeigen, indem er beispielsweise manuell/rechnungen/Kunde/92/eingibt (die Rechnung 92 gehört einem anderen Kunden).
Ich habe das bekommen, aber es ist wirklich nicht gut Code (und nicht funktioniert):
def customer_invoice_detail(request, object_id):
user = threadlocals.get_current_user()
try:
userprofile = UserProfile.objects.get(user=user)
user_customer = userprofile.customer.id
except UserProfile.DoesNotExist:
user_customer = None
if (request.user.is_authenticated() and user_customer is not null) or request.user.is_staff():
invoice = CustomerInvoice.objects.get(pk=object_id)
product_list = CustomerInvoiceOrder.objects.filter(invoice=object_id)
context = {
'object': invoice,
'product_list': product_list,
}
return render_to_response("invoices/customer_invoice_detail.html", context, context_instance=RequestContext(request))
else:
return HttpResponse("You are not authorised to view this invoice")
müssen mit diesem einen besseren/einfacheren Weg zu bewältigen sein - irgendwelche Ideen?
Prost