HecKel Posted March 16, 2009 at 11:59 AM Report Share #250952 Posted March 16, 2009 at 11:59 AM Boas! A pergunta é simples, eu tenho uma BD com algumas tabelas, e estou agora a criar o painel de admin de uma das tabelas, acontece que que uma das opções, chave externa, aparece como combobox (exactamente como eu queria), no entanto eu gostava de saber como faço para eu escolher qual o campo da outra tabela a ser mostrado em vez de aparecer City object como aparece actualmente, é que se eu tiver 10 cidades, irá aparecer-me 10 City objects, não dá para diferenciar por este texto. Alguém tem ideia de como fazer isto? Look Left Blog Link to comment Share on other sites More sharing options...
djthyrax Posted March 16, 2009 at 07:59 PM Report Share #251059 Posted March 16, 2009 at 07:59 PM Não tenho nenhuma experiencia em Django, o JoaoRodrigues é que é homem para saber isso. O que é concretamente esse City Object? Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
HecKel Posted March 16, 2009 at 08:22 PM Author Report Share #251068 Posted March 16, 2009 at 08:22 PM É uma classe, uma classe que apenas tem 3 campos, city_id, country_id, nome. Quando me aparecem as opções na combobox aparece-me apenas o "objecto" em vez de algum dado identificado do objecto... Já melguei o JoaoRodrigues no gtalk antes de vir para aqui 😛 Look Left Blog Link to comment Share on other sites More sharing options...
djthyrax Posted March 16, 2009 at 08:37 PM Report Share #251077 Posted March 16, 2009 at 08:37 PM Podes mostrar aí o código que usas para gerar a combobox? Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
HecKel Posted March 16, 2009 at 08:54 PM Author Report Share #251089 Posted March 16, 2009 at 08:54 PM pá, eu estou a seguir o tutorial do django, apenas "chamo" a classe. mas aqui fica o meu admin.py: from lafora.forum.models import Country, City, Member, Board from django.contrib import admin class CityInline(admin.StackedInline): model = City extra = 1 class CountryAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['name']}), ] inlines = [CityInline] search_fields = ['name'] #list_display = ('name', None) class BoardAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['name']}), ('Position', {'fields': ['parent_board', 'position'], 'classes': ['collapse']}), ] search_fields = ['name'] class MemberAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['displayname']}), ('Data Information', {'fields': ['username', 'email', 'bdate', 'regdat', 'active', 'city'], 'classes': ['collapse']}), ] list_display = ('displayname', 'email', 'city', 'active') list_filter = ['regdat', 'city'] search_fields = ['username', 'displayname', 'email', 'city', 'active'] date_hierarchy = 'regdat' admin.site.register(Member, MemberAdmin) admin.site.register(Country, CountryAdmin) admin.site.register(Board, BoardAdmin) Já agora, o meu models.py: from django.db import models # Create your models here. class Country(models.Model): name = models.CharField(max_length=60) class City(models.Model): name = models.CharField(max_length=60) country = models.ForeignKey(Country) class Member(models.Model): username = models.CharField(max_length=30) displayname = models.CharField(max_length=60) password = models.CharField(max_length=40) email = models.EmailField() bdate = models.DateField() regdat = models.DateTimeField() active = models.CharField(max_length=32) city = models.ForeignKey(City) class Board(models.Model): name = models.CharField(max_length=30) parent_board = models.IntegerField() # pensar numa forma de fazer aqui uma relacao position = models.IntegerField() class Topic(models.Model): title = models.CharField(max_length=60) visualizations = models.IntegerField() member = models.ForeignKey(Member) board = models.ForeignKey(Board) class Message(models.Model): date = models.DateTimeField() text = models.TextField() parent_message = models.IntegerField() member = models.ForeignKey(Member) topic = models.ForeignKey(Topic) Look Left Blog Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted March 17, 2009 at 12:32 PM Report Share #251196 Posted March 17, 2009 at 12:32 PM RTFM 🙂 É o que te tenho a dizer... Do manual do django: Wait a minute. <Poll: Poll object> is, utterly, an unhelpful representation of this object. Let's fix that by editing the polls model (in the polls/models.py file) and adding a __unicode__() method to both Poll and Choice: Basicamente, tens que alterar a tua classe City para: class City(models.Model): name = models.CharField(max_length=60) country = models.ForeignKey(Country) def __unicode__(self): return self.name While you are at it... muda para todas a que precisas de retornar valores 😛 Ah, e usa 4 espaços em vez de um tab 😛 Link to comment Share on other sites More sharing options...
HecKel Posted March 17, 2009 at 12:34 PM Author Report Share #251198 Posted March 17, 2009 at 12:34 PM lub u 🙂 Já funca 😛 Look Left Blog Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now