Cambiar el QuerySet de un ForeingKey de un modelo en Django

CN Camilo Nova Camilo Nova

Camilo Nova

CEO
1 min read.

Es posible declarar tipos ForeignKey en un modelo de datos de Django, pero puede que necesitemos filtrar los valores de esta relación, para efectuar tal cambio necesitamos recurrir al Form que muestra ese modelo y modificar el método __init__ de la siguiente manera:



class MyModelForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super(MyModelForm, self).__init__(*args, **kwargs)
        self.fields["myFKField"].queryset = MyModel.objects.all()



Esto permite cambiar los datos que son mostrados por el campo en el Form por unos filtrados que nosotros queramos, existe tambien la posibilidad de trabajar con limit_choices_to de ForeignKey pero esta solución me funciono de inmediato.


Written by Camilo Nova

CN Camilo Nova Camilo Nova

As the Axiacore CEO, Camilo writes about the intersection of technology, design, and business. With a strategic mindset and a deep understanding of the industry, he is dedicated to helping companies grow.

Newsletter

Subscribe to our newsletter:

Read more

Adicionar o Sustraer Dias en Python

Para agregar o sustraer días a una fecha determinada en python lo mejor es hacerlo así:from datetime import date, timedelta#A...

1 min read.

Convenciones Django

Es importante mantener unas convenciones generales en la estructura del software que desarrollamos, mas aun si estas son esta...

1 min read.

Django Ajax

En esta pagina [1] encontre una guia sobre como utlizar AJAX con JQuery en Django, vamos a sorprender en nuestros desarrollos...

1 min read.

Build Once. Own Forever.