Jump to content

[django] Criar "filtro" em combobox no painel de Admin


Recommended Posts

Posted

Boas!

Vou ser sucinto 👍

Tenho um modelo "Region" que vai armazenar Cidades, Países, Continentes, etc. E tenho um modelo Member que tem um campo designado como city que está associado ao modelo Regions.

Não posso separar as cidades das regiões, senão deixa de fazer sentido no resto do projecto!

Como fazer para, tanto no painel de admin como no registo de utilizadores aparecerem-me apenas as cidades?

Deixo-vos aqui o meu modelo Region e Member:

class Region(models.Model):
   TYPE_CHOICES = (
       (u'R', u'Região'),
       (u'P', u'País'),
       (u'C', u'Cidade'),
   )
   name = models.CharField(max_length=60)
   type = models.CharField(max_length=2, choices=TYPE_CHOICES)
   uplevel = models.ForeignKey('self', null=True, blank=True)

   def __unicode__(self):
       return self.name

class Member(models.Model):
   bdate = models.DateField()
   city = models.ForeignKey(Region)
   user = models.ForeignKey(User, unique=True)

   def __unicode__(self):
       return self.user.username

Agradeço ajuda!

Posted

Quero filtrar as opções que aparecem no campo cidade, quando estou a adicionar ou a editar um membro.

O campo cidade está ligado a um modelo que agrupa regiões (continentes), países e cidades mas apenas quero associar o utilizador às cidades, não quero que seja possível um utilizador possa escolher "Europa" ou "Portugal", quero que as opções sejam apenas cidades!

Posted
ForeignKey.limit_choices_to

A dictionary of lookup arguments and values (see Making queries) that limit the available admin choices for this object. Use this with functions from the Python datetime module to limit choices of objects by date. For example:

limit_choices_to = {'pub_date__lte': datetime.now}

only allows the choice of related objects with a pub_date before the current date/time to be chosen.

Instead of a dictionary this can also be a Q object (an object with a get_sql() method) for more complex queries.

limit_choices_to has no effect on the inline FormSets that are created to display related objects in the admin.

Experimenta na class member:

 city=models.ForeignKey(Region, limit_choices_to={'type':'c'}) 

PS: Nunca experimentei nenhuma das dicas que dei ...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.