Geautomatiseerd adverteren op 2dehands
Geautomatiseerd adverteren op 2dehands met Django Model
Doel
Werking
Proces
*from django.http import HttpResponse
from xml.etree.ElementTree import Element, SubElement, tostring
from django.utils.timezone import localtime
from vehicles.models import Vehicle
def vehicle_xml_feed(request):
root = Element("vehicles")
for v in Vehicle.objects.all():
vehicle_el = SubElement(root, "vehicle")
SubElement(vehicle_el, "id").text = str(v.id)
SubElement(vehicle_el, "trader").text = str(v.trader.name if v.trader else "")
SubElement(vehicle_el, "merk").text = str(v.vehicle_merk.name if v.vehicle_merk else "")
SubElement(vehicle_el, "model").text = str(v.vehicle_model.name if v.vehicle_model else "")
SubElement(vehicle_el, "price").text = str(v.price)
SubElement(vehicle_el, "fuel_type").text = v.fuel_type or ""
SubElement(vehicle_el, "first_registration").text = (
localtime(v.first_registration).isoformat() if v.first_registration else ""
)
SubElement(vehicle_el, "description").text = v.description or ""
SubElement(vehicle_el, "mileage").text = str(v.mileage or 0)
SubElement(vehicle_el, "power_kw").text = str(v.power_kw or 0)
SubElement(vehicle_el, "power_hp").text = str(v.power_hp or 0)
SubElement(vehicle_el, "gearbox").text = v.gearbox or ""
SubElement(vehicle_el, "carrosserietype").text = v.carrosserietype or ""
SubElement(vehicle_el, "seats").text = str(v.seats or "")
SubElement(vehicle_el, "doors").text = str(v.doors or "")
SubElement(vehicle_el, "engine_size").text = v.engine_size or ""
SubElement(vehicle_el, "emission_class").text = v.emission_class or ""
SubElement(vehicle_el, "colour").text = v.colour or ""
SubElement(vehicle_el, "paint").text = v.paint or ""
SubElement(vehicle_el, "status").text = v.status or ""
SubElement(vehicle_el, "url_canonical").text = v.url_canonical or ""
SubElement(vehicle_el, "created").text = localtime(v.created).isoformat()
SubElement(vehicle_el, "modified").text = localtime(v.modified).isoformat()
xml_string = tostring(root, encoding="utf-8")
return HttpResponse(xml_string, content_type="application/xml")*
Daarna moet je in urls.py de path naar jouw view definieren
path("feed.xml/", vehicle_xml_feed, name="vehicle_xml_feed"),
Als je het nog niet hebt gedaan voeg ook je app al toe aan de urls.py van je project.
Verder ga je op de door jouw gegeven url de xml file hebben. Als je jouw django project al aan het hosten bent op een server en die publiek staat kan je de link gewoon delen met channables anders moet je de file nog zelf hosten dat heb ik ook gedaan aan de hand van vercel. Hiervoor maak je een github repository die er zo moet uitzien.
Comments
Post a Comment