使用django。我有以下模型:
class Postagem(models.Model):
id = models.AutoField(primary_key=True, editable=False)
descricao = models.CharField(max_length=50)
area = models.ForeignKey('core.Area', null=True)
user = models.ForeignKey('User')
categoria = models.CharField(max_length=50, null=True)
post = models.FileField(upload_to='posts/', null=True)
thumbnail = models.FileField(upload_to='posts/', null=True)
def __str__(self):
return self.descricao
Run Code Online (Sandbox Code Playgroud)
以下形式:
class PostForm(forms.ModelForm):
categoria = forms.ChoiceField(choices=[("Video","Vídeo"),("Audio","Aúdio"),("Imagem","Imagem"),("Musica","Música")], required=True)
thumbnail = forms.FileField(required=False)
class Meta:
model = Postagem
fields = ['descricao', 'area', 'user', 'post']
Run Code Online (Sandbox Code Playgroud)
视图:
def profileView(request):
context = getUserContext(request)
if request.method == 'POST':
exception=None
userDict = {}
userDict["user"] = context["user"].id
if "categoria" in request.POST:
newPost = request.POST.copy()
newPost.update(userDict)
form …Run Code Online (Sandbox Code Playgroud) 从这里我知道我们应该使用这个注释来排除保存在 firebase 上的字段。我知道的就这么多
但是从这里我们可以看到,这个注解是为了也可以用在方法上!正如在几个例子中看到的但是为什么我应该@Exclude 一个方法?如果我不 @Exclude 一个方法会发生什么?由于保存的只是字段,我不知道何时/为什么应该在方法上使用此注释。
正如你们所问的,这是一个例子,发布在上面的链接上,在 firebase 项目中,firebase 团队在既不是 getter 也不是 setter 的方法中使用 @Exclude
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("id", id);
result.put("fullName",fullName);
result.put("birthDate",birthDate);
result.put("birthYear", birthYear);
result.put("height",height);
result.put("aboutMe",aboutMe);
result.put("userLocation",userLocation);
result.put("jobPosition",jobPosition);
result.put("companyName",companyName);
result.put("companyLocation",companyLocation);
result.put("jobStartDate",jobStartDate);
result.put("homeEmail",homeEmail);
result.put("homePhone",homePhone);
result.put("workEmail",workEmail);
result.put("workPhone",workPhone);
result.put("facebookName",facebookName);
result.put("facebookLink",facebookLink);
result.put("instaName",instaName);
result.put("instaLink",instaLink);
return result;
}
Run Code Online (Sandbox Code Playgroud)