Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine djangae ImageField不使用CloudStorage_Google App Engine_Django Models_Google Cloud Storage_Google Cloud Platform - Fatal编程技术网

Google app engine djangae ImageField不使用CloudStorage

Google app engine djangae ImageField不使用CloudStorage,google-app-engine,django-models,google-cloud-storage,google-cloud-platform,Google App Engine,Django Models,Google Cloud Storage,Google Cloud Platform,我正在使用Djangae在google appengine上运行我的应用程序,我正在尝试将图像存储到google CloudStorage 我遵循了前面提到的同样的过程,但是在CloudStorage上没有写任何东西,没有错误,没有例外 这是我拥有的模型类: class Person(models.Model): user = models.ForeignKey(User, default=1) name = models.CharField(max_length=250,nul

我正在使用Djangae在google appengine上运行我的应用程序,我正在尝试将图像存储到google CloudStorage

我遵循了前面提到的同样的过程,但是在CloudStorage上没有写任何东西,没有错误,没有例外

这是我拥有的模型类:

class Person(models.Model):
    user = models.ForeignKey(User, default=1)
    name = models.CharField(max_length=250,null=True)
    last_name = models.CharField(max_length=500)
    age= models.IntegerField(default=100)
    martial_status = models.CharField(max_length=20, choices=STATUS_CHOICES, default=("Single"))
    sex = models.CharField(max_length=20, choices=SEX_CHOICES, default=("Male"))
    mobile=models.CharField(max_length=26,default=0011)
    amount_paid=models.CharField(max_length=256,null=True)
    amount_left = models.CharField(max_length=256, null=True,blank=True)
    note=models.CharField(max_length=256,null=True,blank=True)
    address=models.CharField(max_length=256,null=True,blank=True)
    date = models.DateField(("Date"), default=date.today,blank=True)
    chief_complain = models.CharField(max_length=256,null=True,blank=True)
    treatment_plan=models.CharField(max_length=256,null=True,blank=True)
    treatment_done=models.CharField(max_length=256,null=True,blank=True)
    #picture = models.ImageField(blank=True)
    picture = models.ImageField(upload_to='/image/', storage=public_storage,blank=True)
    def __str__(self):
        return self.name
模型形式:

class PersonForm(forms.ModelForm):

    class Meta:
        model = Person
        fields = ['name', 'last_name', 'age', 'martial_status', 'mobile', 'sex',
                  'amount_paid','amount_left','note', 'address','date','picture','treatment_done','treatment_plan','chief_complain']
        widgets = {
            'name': forms.TextInput(attrs={'required': True, 'class': 'form-control',
                                             'placeholder': 'name'}),
            'last_name': forms.TextInput(attrs={'required': True, 'class': 'form-control',
                                           'placeholder': 'lastname'}),
            'age': forms.TextInput(attrs={'required': True, 'class': 'form-control',
                                           'placeholder': 'age'}),
            'amount_paid': forms.TextInput(attrs={'required': True, 'class': 'form-control',
                                           'placeholder': 'amount paid'}),
            'amount_left': forms.TextInput(attrs={'required': True, 'class': 'form-control',
                                           'placeholder': 'amount left'}),
            'note': forms.TextInput(attrs={'required': False, 'class': 'form-control',
                                           'placeholder': 'Patient History'}),
            'address': forms.TextInput(attrs={'required': False, 'class': 'form-control',
                                           'placeholder': 'Current address'}),
            'chief_complain': forms.TextInput(attrs={'required': False, 'class': 'form-control',
                                           'placeholder': 'chief complain'}),
            'treatment_plan': forms.Textarea(attrs={'required': False, 'class': 'form-control',
                                           'placeholder': 'treatment plan','rows':'3'}),
            'treatment_done': forms.Textarea(attrs={'required': False, 'class': 'form-control',
                                           'placeholder': 'treatment done','rows':'3'}),




        }
模板:

<h2>Add person</h2>
  <form method="post">
    {% csrf_token %}


<div class="row">
     <div class="col-sm-4 form-group">
       <label for="name" >{% trans "Name" %}</label>
       {{ form.name|add_class:"form-control" }}
      </div>

..<code snippet>..

      <div class="row">
       <div class="col-sm-4 form-group">
       <label for="address">{% trans "Address" %}</label>
       {{ form.address|add_class:"form-control" }}
      </div>
          <div class="col-sm-4 form-group">
       <label for="pic">{% trans "Picture" %}</label>
        {{form.picture}}
      </div>
      </div>
添加人员
{%csrf_令牌%}
{%trans“Name”%}
{form.name | add_类:“form control”}
..。。
{%trans“地址”%}
{{form.address}添加_类:“form control”}
{%trans“图片”%}
{{form.picture}

这就是你要做的一切:

from djangae import fields, storage

public_storage = storage.CloudStorage(
bucket='my_project_id.appspot.com', google_acl='public-read')

class Picture(models.Model):
    picture = models.FileField(upload_to='image', storage=public_storage, blank=True)

您是否在设置中指定了
CLOUD\u STORAGE\u BUCKET
?可能需要设置
picture
字段,以便在错误出现时可以看到错误。您是否找到解决方案,OP?