Ich versuche, diese Tabelle mit einem anklickbaren Feld zu machen, das den Booleschen Wert für den Eintrag auf seinen entgegengesetzten Wert ändert. Es funktioniert, aber ich möchte einen alternativen Text wie "False" oder "True" sieht nicht gut aus, und die Benutzer sind hauptsächlich Norweger.Django-tables2 - kann ich nicht [A ('argument')] innerhalb des Parameters "text" verwenden?
def bool_to_norwegian(boolean):
if boolean:
return "Ja"
else:
return "Nei"
class OrderTable(tables.Table):
id = tables.LinkColumn('admin_detail', args=[A('id')])
name = tables.Column()
address = tables.Column()
order = tables.Column()
order_placed_at = tables.DateTimeColumn()
order_delivery_at = tables.DateColumn()
price = tables.Column()
comment = tables.Column()
sent = tables.LinkColumn('status_sent', args=[A('id')])
paid = tables.LinkColumn('status_paid', args=[A('id')], text=[A('paid')])
class Meta:
attrs = {'class': 'order-table'}
Wenn Sie unter „bezahlt“ Eintrag sehen ich dieses Recht bin jetzt testen, warum kann ich nicht auf die Daten mit dem gleichen Accessor, wie ich in dem args tun? Wenn ich die Argumente in args = [A ('payed')] ändere und den Link betrachte, hat er tatsächlich die richtigen Daten. Die Modellnamen sind dieselben wie die in dieser Tabelle, und "bezahlt" und "gesendet" sind BooleanFields.
Dies ist eine Art, was ich will schließlich:
text=bool_to_norwegian([A('paid')])
Hier ist, was ich an den Tisch schicken:
orders = Order.objects.order_by("-order_delivery_at")
orders = orders.values()
table = OrderTable(orders)
RequestConfig(request).configure(table)
die "bezahlt" und "gesendet" sind booleans ja. Die Werte, mit denen ich die Tabelle versehe, sind eine Liste von Wörterbüchern, ich könnte grob eine for-Schleife machen und den Eintrag in den Wörterbüchern stattdessen auf norwegisch programmatisch ändern, aber wäre das mehr als nur die Verwendung der bereitgestellten Funktion? Aber ich änderte die Tabellen, wie Sie sagten, und es warf diesen Fehler: \t 'dict' Objekt hat kein Attribut 'bezahlt'. Was seltsam ist, wenn man sieht, wie das Wörterbuch aussieht: http://pastebin.com/driAQ0yv –
Verwenden Sie 'record ['paid']' - das sollte funktionieren. Ich dachte, es wäre ein Objekt statt eines Diktats. – solarissmoke
das hat tatsächlich funktioniert danke. Ich habe versucht, die "A ('ID')" und es warf diesen Fehler: "Die enthaltene URLconf '24' scheint keine Muster darin. Wenn Sie gültige Muster in der Datei sehen, dann wird das Problem wahrscheinlich verursacht durch ein kreisförmiger Import. " wenn du neugierig wärst. –