画像をアップロードしようとしましたが、Googleで検索していましたが、解決策が見つかりませんでした。 問題は、画像をアップロードせず、フィールドにデータベースが保存されていることです。 誰でも私が解決策を見つけるのを助けます問題。 私はdjango 1.10とLinuxを使用しています。djangoで画像をアップロードできませんMEDIA_ROOT
注:英語は母国語ではありません。私は、Djangoの管理者
settings.py
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/imagenes/')
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
Models.py
from django.db import models
from apps.almacen.categoria.models import Categoria
# Create your models here.
class Articulo(models.Model):
idarticulo = models.AutoField(primary_key=True)
codigo= models.CharField(max_length=50)
nombre= models.CharField(max_length=100)
stock= models.IntegerField()
descripcion=models.CharField(max_length=512)
imagen=models.FileField(upload_to = 'articulos/',null=True,blank=True)
estado=models.CharField(max_length=20)
idcategoria= models.ForeignKey(Categoria,db_column='idcategoria',null=True,blank=True,on_delete=models.CASCADE)
def __str__(self):
return '{}'.format(self.nombre)
forms.py内から画像をアップロードすることができればというのが私の一部
注上の任意のエラーを言い訳してください
from django import forms
from apps.almacen.articulo.models import Articulo
class ArticuloForm(forms.ModelForm):
class Meta:
model = Articulo
fields = [
'idarticulo',
'nombre',
'codigo',
'descripcion',
'idcategoria',
'stock',
'imagen',
]
labels = {
'idarticulo':'Articulo',
'nombre':'Nombre',
'codigo':'Codigo',
'descripcion':'Descripción',
'idcategoria':'Categoria',
'stock':'Stock',
'imagen':'Imagen',
}
widgets = {
'nombre': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Digite el nombre'}),
'codigo': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Digite el código'}),
'idcategoria': forms.Select(attrs={'class':'form-control'}),
'stock': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Digite el stock'}),
'descripcion': forms.TextInput(attrs={'class':'form-control','placeholder':'Digite la Descripción'}),
'imagen': forms.FileInput(attrs={'class':'form-control'}),
}
Views.py
class ArticuloCreate(CreateView):
model= Articulo
form_class= ArticuloForm
template_name='almacen/articulo/articulo_form.html'
success_url= reverse_lazy('almacen_art:articulo_listar')
def post(self, request, *args, **kwargs):
self.object = self.get_object
form = self.form_class(request.POST)
if form.is_valid():
articulos = form.save(commit=False)
articulos.save()
return HttpResponseRedirect(self.get_success_url())
else:
return self.render_to_response(self.get_context_data(form=form))
articulo.html
<form method="post" enctype='multipart/form-data'>
{% csrf_token %}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<div class="form-group">
<label for="image">Imagen</label>
{{form.imagen}}
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<div class="form-group">
<button class="btn btn-primary" type="submit">Guardar</button>
<button class="btn btn-danger" type="reset">Cancelar</button>
</div>
</div>
</div>
</form>
{% endblock %}
はあなたが私はこの問題を解決することができますか?
あなたが見ているエラーは何ですか? – Fallen
この質問は終了する危険性があります。最小限の例を提供し、おそらくエラーメッセージを含める必要があります。 – cwallenpoole
@Falle問題は画像をアップロードせず、データベースに保存されていることですnull – Xavier