2016-11-24 33 views
1

我想知道如何通過與我的數據庫對應的數據更改Campaign對象和Destino對象。我使用的代碼將數據返回給我的數據庫,但是在它顯示不這樣做的操作的部分。有沒有其他方法可以做到這一點?感謝您閱讀我的問題並留下您的答案。如何通過我的數據庫字段的數據更改我的Django模型的對象名稱?

這裏是我的admin.py文件:

from django.contrib import admin 
from .models import Campania, Destino 

class CampaniaAdmin(admin.ModelAdmin): 
    list_display = ('id_campania','nombre_campania','fecha_creacion','fecha_inicio','usuario','correos_diarios','email','sms', 'completado') 
    search_fields = ['nombre_campania'] 

class DestinoAdmin(admin.ModelAdmin): 
    list_display = ('id_destino','unidad_id_unidad','campania_id_campania','enviado','fecha_hora') 
    search_fields = ['id_destino'] 

這裏是我的models.py文件:

from __future__ import unicode_literals 
from django.db import models 

class Campania(models.Model): 
    id_campania = models.AutoField(primary_key=True, verbose_name='ID') 
    template = models.ForeignKey('Template', db_column='template', blank=True, null=True, verbose_name='Template') 
    nombre_campania = models.CharField(max_length=500, blank=True, null=True, verbose_name='Nombre de la campaña') 
    fecha_creacion = models.DateField(blank=True, null=True, verbose_name='Fecha de creación') 
    fecha_inicio = models.DateField(blank=True, null=True, verbose_name='Fecha de inicio') 
    usuario = models.CharField(max_length=250, blank=True, null=True, verbose_name='Creador de la campaña') 
    correos_diarios = models.IntegerField(blank=True, null=True, verbose_name='Correos por día') 
    email = models.BooleanField(default=True, verbose_name='Enviar correo') 
    sms = models.BooleanField(default=True, verbose_name='Enviar mensaje (sms)') 
    completado = models.NullBooleanField(default=False, blank=True, null=True, verbose_name='Completado') 

    class Meta: 
     managed = False 
     db_table = 'campania' 
     verbose_name_plural = "Campañas" 

    def __str__(self): 
     return '{}'.format(self.nombre_campania) 


class Destino(models.Model): 
    id_destino = models.AutoField(primary_key=True, verbose_name='ID') 
    unidad_id_unidad = models.ForeignKey('Unidad', db_column='unidad_id_unidad', blank=True, null=True, verbose_name='Unidad destino') 
    campania_id_campania = models.ForeignKey('Campania', db_column='campania_id_campania', blank=True, null=True, verbose_name='Campaña dirigida') 
    enviado = models.NullBooleanField(blank=True, null=True, verbose_name='Confirmación de envío de campaña') 
    fecha_hora = models.DateTimeField(blank=True, null=True, verbose_name='Fecha de envío') 

    class Meta: 
     managed = False 
     db_table = 'destino' 
     verbose_name_plural = "Destinos" 


    def __str__(self): 
     return '{}'.format(self.unidad_id_unidad) 

這裏是我的管理網站的形象: admin site

檢查部分操作(Acciones)

我正在使用版本1.8 Django和3.4.4 Python

+0

我希望你使用Python 2,你需要定義'__unicode__'而不是'__str__' 。 –

+0

我忘了把@DanielRoseman我使用Django的1.8版本和Python的3.4.4 –

回答

2

Django Admin正在使用LogEntry來顯示您最近的操作。此模型基於內容類型 - 嘗試在更改模型(在內容類型中更改模型名稱)後運行manage.py migrate

的另一件事是對象名稱 - 這是存儲在LogEntryobject_repr領域,它的動作之後甩了,所以改變模型的再版正在執行的行動將不會體現在此之後計算方法(它看起來是當執行操作時,您尚未爲您的模型定義__str__,它使用的是Django的默認__str__,即<Model name> object)。如果你現在對特定對象執行一些動作(創建,更新,刪除),你應該在這裏看到對象的值__str__

+0

感謝您的回答我做了遷移,但它仍然顯示相同,我有更多的模型,但我只有那些問題與那些 –

+0

現在有兩種型號你試着做一些動作(創建,更新,刪除)嗎? – Matthew

+0

感謝@Matthew,它現在運作良好。我想用一張圖片向你展示證據,但我不知道如何將它置於評論中 –

相關問題