>source

저는 장고에서 처음입니다. 도와주세요. 양식을 사용하여 BinaryField에 이미지를 저장하고 싶지만 작동하지 않습니다. 미디어 폴더에 업로드하는 대신 BinaryField를 사용하여 데이터베이스에 파일을 직접 저장하고 싶습니다.

Model.py:

class serviceDb(models.Model):
    Dev = 1
    QA = 2
    UAT = 3
    Production = 4
    environment_TYPES = (   (Dev, 'Dev'),   (QA, 'QA'), (UAT, 'UAT'),   (Production, 'Production'), )
    application = models.CharField(db_column='Application', max_length=255, blank=True, null=True)  # Field name made lowercase.
    startdate = models.DateField(null=True)
    expiredate = models.DateField(null=True)
    environment_type = models.PositiveSmallIntegerField(choices=environment_TYPES)
    CSR=models.BinaryField(editable=True)

Form.py:

class serviceForm(forms.ModelForm):
    app_attributes = {'oninvalid': 'this.setCustomValidity("Application field is required")', 'oninput': 'this.setCustomValidity("")'}
    startdate = forms.DateField(widget = forms.SelectDateWidget(years=range(1995, 2100)))
    expiredate = forms.DateField(widget = forms.SelectDateWidget(years=range(1995, 2100)))
    application = forms.CharField(widget=forms.TextInput(attrs=app_attributes))
    CSR = forms.FileField(required=False)
    class Meta:
        model = serviceDb
        fields = ('application', 'startdate', 'expiredate', 'environment_type','CSR' )
        error_messages = {
            'application': {
                'required': ("Application field is required"),
            },
            }


  • 답변 # 1

    BinaryField는 BinaryData를 예상하므로 @Vaibhav Vishal이 직접 변환해야 할 수도 있다고 제안했습니다.

    지금까지 BinaryField를 사용한 적이 없으며 데이터베이스에 이진 데이터를 저장하지 않는 것이 좋습니다.

    하지만 귀하의 경우에는 이와 같은 것을 시도하는 것이 좋습니다

    class ServiceCreateFormView(CreateView):
        template = ...
        form_class = serviceForm  # Should be `ServiceForm` btw.
        def form_valid(self, form):
            uploaded_file = form.files['CSR'].file  # I assume a `InMemoryUploadedFile` instance
            data = uploaded_file.file.read()
            # construct you own instance here using `data`
            self.object = ...
            return HttpResponseRedirect(self.get_success_url())
    
    

    문제에 대한 추가 정보를 포함하십시오. 역 추적처럼 정확하게 작동하지 않는 것은 무엇을 해결하려고 했습니까?

  • 이전 c# - 일부 사용자에게는 PrincipalContextValidateCredentials가 실패합니까?
  • 다음 sql - 명명 된 인스턴스와 기본 인스턴스의 차이점은 무엇입니까?