Как сделать мои данные из словаря, используя django_tables2 - PullRequest
0 голосов
/ 04 марта 2020

Моему django_table2 я передаю диктатор, а не набор запросов, как обычно

views

object_list = Warehouse_Order_Reserve.objects.values('wholesale_product__description','wholesale_product__code','wholesale_product_id' ).annotate(quantity=Sum('quantity'))

Когда я пытаюсь отобразить свои данные в моей таблице, я сталкиваюсь с проблемой, которая правильно отображается только поле warehouse_product_id, а не поля описания и кода

таблиц

class ReserveTable(tables.Table):

    wholesale_product_name = tables.Column(accessor='wholesale_product_description',verbose_name= 'Product')
    wholesale_product_code = tables.Column(accessor='wholesale_product_code',verbose_name= 'Sku')
    wholesale_product_id = tables.Column(accessor='wholesale_product_id',verbose_name= 'ID')
    details=tables.LinkColumn('reserve_details_list',args=[A('wholesale_product_id')],accessor='Backorder Details',orderable=False,empty_values=(),verbose_name = 'Λεπτομέρειες δέσμευσης')

    class Meta:
        #define the model
        model = Warehouse_Order_Reserve
        template_name = 'django_tables2/bootstrap4.html'
        exclude = ('id','date',"warehouse","woo_order",'wholesale_product')
        sequence = ('wholesale_product_name','wholesale_product_code', 'wholesale_product_id',"quantity",'details')

    def render_wholesale_product_name(self,record):
        return '%s' % (record['wholesale_product_description'])

    def render_wholesale_product_code(self,record):
        return '%s' % (record['wholesale_product_code'])

    def render_wholesale_product_id(self,record):
        return '%s' % (record['wholesale_product_id'])

    def render_details(self,record):
        return format_html('<a href="/reserve_details/{}/"><button class="btn btn-primary btn-sm" type="">Details</button></a>',record['wholesale_product_id'])

модель

class Warehouse_Order_Reserve(models.Model):
    woo_order = models.ForeignKey(Woo_Orders,verbose_name="Order",null=True,on_delete=models.CASCADE)
    wholesale_product=models.ForeignKey(Product,null=True,on_delete=models.CASCADE)
    warehouse=models.ForeignKey(Warehouse,verbose_name=u'Warehouse',blank=True, null=True,on_delete=models.CASCADE)
    quantity = models.DecimalField("Quantity", max_digits=7, decimal_places=2, default=0)
    date = models.DateTimeField("Date",null=True, blank=True, default=datetime.datetime.now)

Это связано с аксессором? Обычно, когда мы передаем в таблицу набор запросов, мы возвращаем значение, как показано ниже

def render_wholesale_product_name(self,record):
        return '%s' % (record.wholesale_product.description)

, но в моем случае это не работает. Как я могу сделать мои данные?

...