Ich schreibe eine Datenmigration mit South ... aber die Frage bezieht sich auf die Verwendung von select_related, um viele zu erhalten Viele felder.select_related über viele bis viele Felder in Django oder wie bekomme ich Zugriff auf viele bis viele Felder mit .all()
Die Dokumentation legt fest, dass select_related für Felder mit Beziehungen mit ForeignKey verwendet werden kann ... ich kann nicht ergründen, wird nicht mit ManyToMany Felder richtig arbeiten?
Mein Feld habe leer = null, aber die Dokumentation sagt, dass Sie select_related ('field_name') noch aufrufen können und es wird die relevanten Beziehungen ziehen. aber wenn ich versuche, das unten zu tun ...
wo Auflistung ist ein Element in einem queryset
for listing in RealEstateListing.objects.all():
listing_type_slug_url = slugify(listing.listing_type.name)
sub_type = orm.SubType.objects.get(slug_url=listing_type_slug_url)
pricing_option = PricingOption.objects.get(name=listing.pricing_option.name)
lt = orm.Listing(listing_type=sub_type.parent,
sub_type=sub_type,
expiration_date=listing.expiration_date,
title=listing.title,
slug_url = listing.slug_url,
description = listing.description,
contact_person=listing.contact_person,
secondary_contact=listing.secondary_contact,
address=listing.address,
location=listing.location,
price=listing.price,
pricing_option=pricing_option,
display_picture=listing.display_picture,
image_gallery=listing.image_gallery,
date_added=listing.date_added,
status=listing.status,
featured_on_homepage=listing.featured_on_homepage,
)
lt.save()
lt.features.clear()
if listing.property_features:
property_features = listing.property_features.all()
else:
property_features = None
if property_features:
for ft in property_features:
ft_ = Feature.objects.get(name=ft.name)
lt.features.add(ft_)
Ich erhalte einen Fehler mir zu sagen, dass es nicht das Feld property_features lösen kann ... die verfügbaren Felder sind nur ID & Name ... es scheint nicht die Beziehungen zu ziehen.
meine andere Frage ist, wenn wir select_related nicht verwenden können, um auf viele bis viele Felder zuzugreifen, was ist die Alternative?
---------------------------------------------- --EDIT ----------------------------------------
ich entfernte die Verweis auf Süd-Fake-Orm, die ich verwendet habe, um die Datenmigration zu tun.
, was ich im Grunde mit den obigen Code zu tun nimmt alle RealEstateListings Objekte dann in einer for-Schleife einen neuen Eintrag Objekt mit den Daten aus den alten RealEstateListings Schaffung
der letzte Teil ist, wo ich das Problem haben und gibt mir den Fehler oben mit dem viele bis viele Feld property_features aus dem alten RealEstateListing Modell
hi, siehe meine Bearbeitung oben, entfernte ich Verweis auf Süd gefälschte orm. Objekt – Rasiel
danke das hat mich auch ratlos, da nichts scheint falsch zu sein und nein, ich mache nicht Ihre letzten Codes Probe. Ich werde den Traceback später veröffentlichen. – Rasiel