Ich wurde beauftragt, eine Admin-Ansicht zu erstellen, so dass ein Benutzer eine Bilddatei eingeben könnte, die jedoch als Base64-String als Modellfeld statt existiert in einem statischen Verzeichnis auf unserem Server.Django: habe Admin Bilddatei aufnehmen, aber als Base64 String speichern
Ich bin unklar, wie genau dieser Prozess gemacht würde, sollte ich die POST-Anfrage von der Admin-Ansicht abfangen und vorverarbeiten, um im Feld gespeichert zu werden? Sollte ich die Speichermethode des Basisformulars überschreiben? Ich bin etwas verwirrt wegen der verschiedenen Methoden, da ich neu in Django bin und kein Arbeitsergebnis erzielen konnte.
Hier ist mein Setup:
models.py
from django.db import models
class Product(models.Model):
organization = models.ForeignKey(Organization)
name = models.CharField(max_length=50)
logo = models.TextField()
admin.py
from django.contrib import admin
from .models import Product
class ProductAdmin(admin.ModelAdmin):
exclude = ('logo',)
admin.site.register(Product, ProductAdmin)
misc.py
#how i'd process an image?
from PIL import Image
from base64 import b64encode
def image_to_b64(image_file):
imgdata = Image(image_file)
encoded = b64encode(open(imgdata, 'rb'))
return encoded
, wenn Sie eine logo_file hinzufügen annehmen können (Imagefield) zu Ihnen Produkt, wird es durch Überschreibung Speichermethode Probe sein, in denen Sie in Admin-Modell oder Form. – Ykh
@Ykh Ich versuche, das Bild überhaupt nicht auf dem Server gespeichert zu haben; Können Sie ein funktionierendes Beispiel dafür liefern, wie das funktionieren würde? – mburke05